C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#で列挙型(enum)のすべての値をループ処理する方法

C#で列挙型(enum)に定義されたすべての値を順番に取得して処理したい場合は、Enum.GetValues() メソッドを使用します。このメソッドは、指定した列挙型に含まれるすべての定数値を配列として返してくれます。

1. 列挙型の定義

まず、サンプルとして以下のような列挙型を定義します。

public enum Grade { A, B, C, D, E, F };

2. foreachループですべての値を取得する

続いて、foreach ループと Enum.GetValues(typeof(Grade)) を組み合わせることで、列挙型の各値をひとつずつ取り出すことができます。

foreach (Grade g in Enum.GetValues(typeof(Grade))) {
    Console.WriteLine(g);
}

Enum.GetValues() の引数には、対象となる列挙型の Type オブジェクトを渡します。戻り値は Array 型なので、foreach で各要素を列挙型の変数にキャストしながら受け取ります。

完全なサンプルコード

以下は、ここまでの内容をまとめた実行可能なコード例です。

using System;

public class EnumExample {
    public enum Grade { A, B, C, D, E, F };
    public static void Main() {
        foreach (Grade g in Enum.GetValues(typeof(Grade))) {
            Console.WriteLine(g);
        }
    }
}

実行結果

A
B
C
D
E
F

このように、Enum.GetValues() を使えば、列挙型に後から新しい値が追加されても自動的に対応できるため、ハードコーディングせずに柔軟なループ処理を実現できます。

補足:名前だけを文字列として取得したい場合

値そのものではなく、列挙子の名前を文字列として取得したい場合は、Enum.GetNames() メソッドが便利です。

string[] names = Enum.GetNames(typeof(Grade));
foreach (string name in names) {
    Console.WriteLine(name);
}

用途に応じて GetValues()GetNames() を使い分けるとよいでしょう。

  1. JavaScriptでオブジェクトを含む「配列の配列」をループ処理する方法

    JavaScriptでオブジェクトを含む多次元配列をループするには?JavaScriptでは、オブジェクトを含む配列の配列(入れ子構造の配列)をループ処理する際、forEach()メソッドをネストして使用し、さらにfor...inループで各オブジェクトのプロパティにアクセスするのが一般的な方法です。以下に、具体的な実装例を紹介します。コード例<!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device

  2. Matplotlibで目盛りラベルをすべて表示する方法

    Matplotlibでグラフ上のすべてのラベル値を表示したい場合は、set_xticklabels() メソッドと set_yticklabels() メソッドを使用します。この記事では、具体的な手順とコード例を使って、その方法をわかりやすく解説します。実装の手順軸の目盛りとして使用できる数値のリスト(x)を作成します。subplot() 関数を使用して軸オブジェクトを取得します。subplot() は現在の図にサブプロットを追加するための便利な関数です。set_xticks メソッドと set_yticks メソッドを使い、手順1で作成したリスト x を指定して、それぞれX軸とY軸の目盛り位