[C#]Enum(列挙型)を文字列のリストに変換するには?

C#

どうも、ちょげ(@chogetarou)です。

Enum(列挙型)のメンバーを文字列のリスト(List)に変換する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

Enum(列挙型)を文字列のリストに変換する方法は、2つあります。

new List<string>()

1つは、new List<string>()を使う方法です。

まず、new List<string>()を呼び出します。

new List<string>()の引数でEnum.GetNames()を呼び出します。

そして、Enum.GetNames()の引数にtypeof()を指定し、typeof()の引数に列挙型を指定します。

List<string> list = new List<string>(Enum.GetNames(typeof(Names)));

new List<string>()は、typeof()の引数に指定した列挙型のメンバーを文字列のリストに変換した結果を返します。

使用例

using System;
using System.Collections.Generic;
public class Example
{
    public enum Names 
    {
        Taro = 18,
        Ryoma = 37,
        Kazuma = 16,
        Keiko = 24,
        Megumi = 10,
    }
    
    public static void Main()
    {
        List<string> names = new List<string>(Enum.GetNames(typeof(Names)));
        
        foreach(var name in names)
        {
            Console.WriteLine(name);
        }
    }
}

/*
    出力:
    Megumi
    Kazuma
    Taro
    Keiko
    Ryoma
*/

System.Linq

もう1つは、System.Linqを使う方法です。

まず、System.Linqを導入します。

using System.Linq;

次に、Enum.GetNames()を呼び出します。

GetNames()の引数でtypeof()を呼び出し、引数に列挙型を指定します。

そして、GetNames()からToList()を呼び出します。

List<string> list = Enum.GetNames(typeof(enumName)).ToList();

上記のToList()は、列挙型のメンバーを文字列のリストに変換した結果を返します。

使用例

using System;
using System.Collections.Generic;
using System.Linq;
public class Example
{
    public enum Names 
    {
        Taro = 18,
        Ryoma = 37,
        Kazuma = 16,
        Keiko = 24,
        Megumi = 10,
    }
    
    public static void Main()
    {
        List<string> names = Enum.GetNames(typeof(Names)).ToList();
        
        foreach(var name in names)
        {
            Console.WriteLine(name);
        }
    }
}

/*
    出力:
    Megumi
    Kazuma
    Taro
    Keiko
    Ryoma
*/

まとめ

Enum(列挙型)のメンバーを文字列のリスト(List)に変換する方法は、次の2つです。

  • new List<string>()を使う方法
    List<string> list = new List<string>(Enum.GetNames(typeof(Names)));
  • System.Linqを使う方法
    List<string> list = Enum.GetNames(typeof(enumName)).ToList();

コメント

タイトルとURLをコピーしました