[C#]Enum(列挙型)のメンバーをループするには?

C#

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

Enum(列挙型)のメンバーをループする方法を紹介します。

スポンサーリンク

方法

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

Enum(列挙型)のメンバーをループする方法は、2つあります。

Enum.GetNames()

1つは、Enum.GetNames()を使う方法です。

まず、foreachループを記述します。

foreachループのループ対象にEnum.GetNames()を指定します。

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

そして、foreachのループ処理を記述します。

ループ処理内では、ループ変数でEnumのメンバーを文字列として取得できます。

foreach(string value in Enum.GetNames(typeof(Names)))
{
    //ループ処理
}

上記のforeachループは、Enumのメンバーを文字列としてループします。

使用例

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()
    {
        foreach(string value in Enum.GetNames(typeof(Names)))
        {
            Console.WriteLine(value);
        }
    }
}

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

Enum.Values()

もう1つは、Enum.Values()を使う方法です。

まず、foreachループを記述します。

foreachループのループ対象にEnum.Values()を指定します。

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

そして、foreachループのループ処理を記述します。

foreachループの処理では、ループ変数でEnumのメンバーを取得できます。

foreach(var value in Enum.GetValues(typeof(Names)))
{
    //処理
}

使用例

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()
    {
        foreach(var value in Enum.GetValues(typeof(Names)))
        {
            Console.WriteLine(value);
        }
    }
}

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

まとめ

Enum(列挙型)のメンバーをループする方法は、次の2つです。

  • Enum.GetNames()を使う方法
  • Enum.GetValues()を使う方法

コメント

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