如何获得在C#中的所有枚举值的数组?
我有一个枚举,我想显示所有可能的值。 有没有办法获得一个数组或枚举的所有可能的值列表,而不是手动创build这样的列表? 例如,如果我有一个枚举:
public enum Enumnum { TypeA, TypeB, TypeC, TypeD }
我将如何获得包含{ TypeA, TypeB, TypeC, TypeD }
的List<Enumnum>
?
这让你一个枚举值使用Enum.GetValues
一个普通的数组:
var valuesAsArray = Enum.GetValues(typeof(Enumnum));
这给你一个通用的列表:
var valuesAsList = Enum.GetValues(typeof(Enumnum)).Cast<Enumnum>().ToList();
试试这个代码:
Enum.GetNames(typeof(Enumnum));
这返回一个string[]
与所选枚举的所有枚举名称。
Enum.GetValues(typeof(Enumnum));
返回Enum中的值的数组。
有点不同:
typeof(SomeEnum).GetEnumValues();
您可以使用
Enum.GetValues(typeof(SomeEnum)).Cast<SomeEnum>().ToArray();
这将返回一个数组!
有了这个:
string[] myArray = Enum.GetNames(typeof(Enumnum));
你可以像这样访问values数组:
Array myArray = Enum.GetValues(typeof(Enumnum));
你可能想这样做:
public enum Enumnum { TypeA = 11, TypeB = 22, TypeC = 33, TypeD = 44 }
这个enum
所有int值是11,22,33,44
。
你可以通过这个获得这些值:
var enumsValues = Enum.GetValues(typeof(Enumnum)).Cast<Enumnum>().ToList().Select(e => (int)e);
string.Join(",", enumsValues)
是11,22,33,44
。
也可以使用
var enumAsJson=typeof(SomeEnum).Name + ":[" + string.Join(",", Enum.GetValues(typeof(SomeEnum)).Cast<SomeEnum>().Select(e => e.ToString())) + "]";
获取所有枚举为json格式的元素。