如何获得在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格式的元素。