How to get an array of all enum values in C#?
我有一个枚举,我想显示所有可能的值。是否有方法获取枚举的所有可能值的数组或列表,而不是手动创建此类列表?例如,如果我有一个枚举:
1 | public enum Enumnum { TypeA, TypeB, TypeC, TypeD } |
我怎样才能得到一个包含
这将使用
1 |
这将为您提供一个通用列表:
1 |
试试这个代码:
1 |
这将返回带有所选枚举的所有枚举名称的
1 |
返回枚举中的值数组。
您可能需要这样做:
1 2 3 4 5 6 | public enum Enumnum { TypeA = 11, TypeB = 22, TypeC = 33, TypeD = 44 } |
此
您可以通过以下方式获得这些值:
1 |
有点不同:
1 |
如果您更喜欢更通用的方式,这里是。您可以根据需要添加更多的转换器。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | public static class EnumConverter { public static string[] ToNameArray<T>() { return Enum.GetNames(typeof(T)).ToArray(); } public static Array ToValueArray<T>() { return Enum.GetValues(typeof(T)); } public static List<T> ToListOfValues<T>() { return Enum.GetValues(typeof(T)).Cast<T>().ToList(); } public static IEnumerable<T> ToEnumerable<T>() { return (T[])Enum.GetValues(typeof(T)); } } |
示例实现:
1 2 3 | string[] roles = EnumConverter.ToStringArray<ePermittedRoles>(); List<ePermittedRoles> roles2 = EnumConverter.ToListOfValues<ePermittedRoles>(); Array data = EnumConverter.ToValueArray<ePermittedRoles>(); |
用这个:
1 |
您可以这样访问值数组:
1 |
你可以使用
1 |
这将返回一个数组!
OP要求如何获得C_中所有
如果您想获得一个选定的
你的枚举
1 2 3 4 5 6 | enum WeekDays { Sunday, Monday, Tuesday } |
如果您只想从您的
1 2 3 4 |
学分归知识渊博的TL。
参考文献:
1。
2。
希望能帮助别人。
你也可以用
1 |
以JSON格式获取枚举中的所有元素。