web-dev-qa-db-ja.com

列挙型をリストに変換

私は次の列挙値を持っていると言う

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

    }

それらを値のリストに変換したい(つまり){ CSharp,Java,VB}.

それらを値のリストに変換する方法は?

27
Amit
Language[] result = (Language[])Enum.GetValues(typeof(Language))

列挙型のリストが必要な場合は、値を取得します。

名前のリストが必要な場合は、これを使用します。

string[] names = Enum.GetNames(typeof(Languages));
42
It'sNotALie.

あなたの要件を正しく理解していれば、あなたはこのようなものを探しています

var enumList = Enum.GetValues(typeof(Language)).OfType<Language>().ToList();
12
user2488066

リストに列挙型要素を言語タイプとして保存する場合:

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

文字列として保存したい場合:

Enum.GetValues(typeof(Language)).Cast<Language>().Select(x => x.ToString()).ToList();
6
monrow

このコードを使用できます

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