36

假设我有以下枚举值

enum Language
    {
       CSharp= 0,
        Java = 1,
        VB = 2

    }

我想将它们转换为值列表(即){ CSharp,Java,VB}.

如何将它们转换为值列表?

4

4 回答 4

47
Language[] result = (Language[])Enum.GetValues(typeof(Language))

如果您想要枚举列表,将为您提供您的价值观。

如果您想要名称列表,请使用以下命令:

string[] names = Enum.GetNames(typeof(Languages));
于 2013-06-15T12:22:07.597 回答
14

如果我正确理解您的要求,您正在寻找这样的东西

var enumList = Enum.GetValues(typeof(Language)).OfType<Language>().ToList();
于 2013-06-15T12:20:50.457 回答
8

如果要将列表中的枚举元素存储为语言类型:

Enum.GetValues(typeof(Language)).Cast<Language>().ToList();

如果您想将它们存储为字符串:

Enum.GetValues(typeof(Language)).Cast<Language>().Select(x => x.ToString()).ToList();
于 2013-06-15T12:23:12.493 回答
0

您可以使用此代码

  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());
    }
  }
于 2013-06-15T12:21:57.157 回答