如何将枚举中所有常量的值提取到char数组中?

时间:2015-08-05 11:24:00

标签: c# .net c#-4.0 enums

可能会在enumChar[]中提取值吗?

我有Enum

enum eTypeLanguage { typed = 'T', functional = 'F' }

如何将值eTypeLanguage提取到Char数组?

2 个答案:

答案 0 :(得分:6)

似乎你正在寻找这个(它返回string[]):

Enum.GetNames(typeof(eTypeLanguage));
//returns: typed, functional

如果您正在寻找值('T','F'),那么您可以这样做(这不会为您的枚举抛出System.InvalidCastException):

 var values = Enum.GetValues(typeof(eTypeLanguage))
                  .Cast<eTypeLanguage>()
                  .Select(i => (char)i).ToArray();
 //returns: 'T', 'F'

答案 1 :(得分:4)

如果要获取所有枚举成员的char值,则需要调用Enum.GetValues,将返回值强制转换为acutal枚举类型,然后将每个成员从其枚举类型转换为char

var values = Enum.GetValues(typeof(eTypeLanguage))
                 .Cast<eTypeLanguage>()
                 .Select(e => (char)e)
                 .ToArray();