using System; using System.Text; public class Test { public static void Main() { Console.WriteLine(GetFlagsStringFromUInt32Enum(ProfileTypeFlag.SupplierMaster)); } public static string GetFlagsStringFromUInt32Enum(TEnum value) where TEnum : struct { var sb = new StringBuilder(); for(var i = 0; i < 32; ++i) { var bit = (uint)1 << i; if (((uint)(object)value & bit) != 0) sb.Append((TEnum)(object)bit).Append(" | "); } if (sb.Length > 0) sb.Length -= 3; return sb.ToString(); } [Flags] public enum ProfileTypeFlag : uint { None = 0, Customer = 1, Supplier = 2, Internal = 4, Delegate = 8, Master = 16, External = 32, CustomerMaster = Customer | Master | External, SupplierMaster = Supplier | Master | External } }