【发布时间】:2013-06-11 23:48:23
【问题描述】:
假设我有以下枚举值
enum Language
{
CSharp= 0,
Java = 1,
VB = 2
}
我想将它们转换为值列表(即){ CSharp,Java,VB}.
如何将它们转换为值列表?
【问题讨论】:
标签: c# list enums type-conversion
假设我有以下枚举值
enum Language
{
CSharp= 0,
Java = 1,
VB = 2
}
我想将它们转换为值列表(即){ CSharp,Java,VB}.
如何将它们转换为值列表?
【问题讨论】:
标签: c# list enums type-conversion
如果您想将列表中的枚举元素存储为语言类型:
Enum.GetValues(typeof(Language)).Cast<Language>().ToList();
如果您想将它们存储为字符串:
Enum.GetValues(typeof(Language)).Cast<Language>().Select(x => x.ToString()).ToList();
【讨论】:
Language[] result = (Language[])Enum.GetValues(typeof(Language))
如果你想要一个枚举列表,你会得到你的值。
如果您想要名称列表,请使用:
string[] names = Enum.GetNames(typeof(Languages));
【讨论】:
您可以使用此代码
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());
}
}
【讨论】:
如果我正确理解您的要求,您正在寻找这样的东西
var enumList = Enum.GetValues(typeof(Language)).OfType<Language>().ToList();
【讨论】:
OfType<Language>().ToList() 可以直接转换为Languages[]?