Convert Enum to List
假设我有以下枚举值
1 2 3 4 5 6 7
| enum Language
{
CSharp= 0,
Java = 1,
VB = 2
} |
我想把它们转换成值列表(即{ CSharp,Java,VB}.)
如何将它们转换为值列表?
1
| Language [] result = (Language [])Enum.GetValues(typeof(Language )) |
如果需要枚举列表,将获取值。
如果需要名称列表,请使用:
1
| string[] names = Enum.GetNames(typeof(Languages )); |
如果我正确理解你的要求,你正在找这样的东西
1
| var enumList = Enum.GetValues(typeof(Language )).OfType<Language >().ToList(); |
- 当你可以直接把它投射到一个Languages[]上时,为什么要使用OfType().ToList()?
- @NewstackExchangeInstance是的,您是正确的
如果要将枚举元素作为语言类型存储在列表中:
1
| Enum.GetValues(typeof(Language )).Cast<Language >().ToList(); |
如果要将它们存储为字符串:
1
| Enum.GetValues(typeof(Language )).Cast<Language >().Select(x => x .ToString()).ToList(); |
您可以使用此代码
1 2 3 4 5 6 7 8 9 10 11
| static void Main (string[] args )
{
enum Days { Sat, Sun, Mon, Tue, Wed, Thu, Fri };
Array arr = Enum.GetValues(typeof(Days ));
List <string> lstDays = new List <string>(arr .Length);
for (int i = 0; i < arr .Length; i ++)
{
lstDays .Add(arr .GetValue(i ).ToString());
}
} |