关于c#:将枚举转换为列表Enum to List

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();


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

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());
    }
  }