Advertisement
Guest User

Untitled

a guest
Jun 15th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.14 KB | None | 0 0
  1. public void SetOptions<T>() where T : Enum
  2. {
  3. int i = 0;
  4. foreach (T obj in Enum.GetValues(typeof(T)))
  5. {
  6. if (i == 0)
  7. DefaultOption = new ListItem(obj.Description(), obj.ToString());
  8. i++;
  9. DropDownList.Items.Add(new ListItem(obj.Description(), obj.ToString()));
  10. }
  11. }
  12.  
  13. public void SetOptions<T>()
  14. {
  15. Type genericType = typeof(T);
  16. if (genericType.IsEnum)
  17. {
  18. foreach (T obj in Enum.GetValues(genericType))
  19. {
  20. Enum test = Enum.Parse(typeof(T), obj.ToString()) as Enum;
  21. int x = Convert.ToInt32(test); // x is the integer value of enum
  22. ..........
  23. ..........
  24. }
  25. }
  26. }
  27.  
  28. public static int EnumToInt<TValue>(this TValue value) where TValue : Enum
  29. => (int)(object)value;
  30.  
  31. public static int EnumToInt<TValue>(this TValue value) where TValue : struct, IConvertible
  32. {
  33. if(!typeof(TValue).IsEnum)
  34. {
  35. throw new ArgumentException(nameof(value));
  36. }
  37.  
  38. return (int)(object)value;
  39. }
  40.  
  41. public static int EnumToInt<TValue>(this TValue value) where TValue : Enum
  42. {
  43. if (!typeof(int).IsAssignableFrom(Enum.GetUnderlyingType(typeof(TValue))))
  44. throw new ArgumentException(nameof(TValue));
  45.  
  46. return (int)(object)value;
  47. }
  48.  
  49. public static int EnumToInt<TValue>(this TValue value) where TValue : Enum
  50. => Convert.ToInt32(value);
  51.  
  52. Convert.ChangeType(value, Enum.GetUnderlyingType(value.GetType()))
  53.  
  54. public static void AddEnum(this SqlParameterCollection parameters, string parameterName, Enum value)
  55. {
  56. parameters.AddWithValue(parameterName, Convert.ChangeType(value, Enum.GetUnderlyingType(value.GetType())));
  57. }
  58.  
  59. public enum MyEnum
  60. {
  61. Foo = 100,
  62. Bar = 200,
  63. Fizz = 0
  64. }
  65.  
  66. static void Main(string[] args)
  67. {
  68. var i1 = MyEnum.Foo.GetHashCode(); // i1 = 100
  69. var i2 = MyEnum.Bar.GetHashCode(); // i2 = 200
  70. var i3 = MyEnum.Fizz.GetHashCode(); // i3 = 0
  71. }
  72.  
  73. int? value = (enumCandidate as IConvertible)?.ToInt32(CultureInfo.InvariantCulture.Numberformat);
  74.  
  75. public static int GetEnumValue<T>(T inputEnum) where T: struct, IConvertible
  76. {
  77. Type t = typeof(T);
  78. if (!t.IsEnum)
  79. {
  80. throw new ArgumentException("Input type must be an enum.");
  81. }
  82.  
  83. return inputEnum.ToInt32(CultureInfo.InvariantCulture.NumberFormat);
  84.  
  85. }
  86.  
  87. public static int GetEnumValue(object enumInput)
  88. {
  89. Type t = enumInput.GetType();
  90. if (!t.IsEnum)
  91. {
  92. throw new ArgumentException("Input type must be an enum.");
  93. }
  94.  
  95. return ((IConvertible)inputEnum).ToInt32(CultureInfo.InvariantCulture.NumberFormat);
  96.  
  97. }
  98.  
  99. public static void SetOptions<T>(this DropDownList dropDownList)
  100. {
  101. if (!typeof(T).IsEnum)
  102. {
  103. throw new ArgumentException("Type must be an enum type.");
  104. }
  105.  
  106. dropDownList.Items.AddRange(Enum
  107. .GetValues(typeof(T))
  108. .Cast<Enum>()
  109. .Select(x => new ListItem(x.ToString(), Convert.ToInt32(x).ToString()))
  110. .ToArray());
  111. }
  112.  
  113. void MyFunc<T>(T value)
  114. {
  115. Type t = typeof(T);
  116. if(t.IsEnum)
  117. {
  118. int valueAsInt = value.GetHashCode(); // returns the integer value
  119. }
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement