fork(1) download
  1. using System;
  2. using System.Text;
  3.  
  4. public class Test
  5. {
  6. public static void Main()
  7. {
  8. Console.WriteLine(GetFlagsStringFromUInt32Enum(ProfileTypeFlag.SupplierMaster));
  9. }
  10.  
  11. public static string GetFlagsStringFromUInt32Enum<TEnum>(TEnum value)
  12. where TEnum : struct
  13. {
  14. var sb = new StringBuilder();
  15.  
  16. for(var i = 0; i < 32; ++i)
  17. {
  18. var bit = (uint)1 << i;
  19. if (((uint)(object)value & bit) != 0)
  20. sb.Append((TEnum)(object)bit).Append(" | ");
  21. }
  22.  
  23. if (sb.Length > 0)
  24. sb.Length -= 3;
  25.  
  26. return sb.ToString();
  27. }
  28.  
  29. [Flags]
  30. public enum ProfileTypeFlag : uint
  31. {
  32. None = 0,
  33. Customer = 1,
  34. Supplier = 2,
  35. Internal = 4,
  36. Delegate = 8,
  37. Master = 16,
  38. External = 32,
  39. CustomerMaster = Customer | Master | External,
  40. SupplierMaster = Supplier | Master | External
  41. }
  42. }
  43.  
Success #stdin #stdout 0.04s 33944KB
stdin
Standard input is empty
stdout
Supplier | Master | External