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

C#のEnum.GetNameメソッドで列挙型の定数名を取得する方法

C#のEnum.GetName()メソッドとは

Enum.GetName()メソッドは、列挙型(enum)に含まれる定数の中から、指定した値に対応する名前を文字列として返すメソッドです。第1引数には列挙型の型情報(typeof)、第2引数には取得したい定数の整数値を指定します。

列挙型の定義例

enum Stock { Appliance, Clothing, Footwear };

この列挙型では、各定数は宣言された順に0から始まる整数値と対応しています。つまり「Appliance=0」「Clothing=1」「Footwear=2」です。

Enum.GetName()の基本的な使い方

Enum.GetName(typeof(Stock), 1)

このように、定数の値を指定するだけで、対応する個別の名前を簡単に取得できます。

サンプルコード

using System;

class Demo {
    enum Stock { Appliance, Clothing, Footwear };

    static void Main() {
        Console.WriteLine("2番目の在庫カテゴリの値 = {0}", Enum.GetName(typeof(Stock), 1));
        Console.WriteLine("3番目の在庫カテゴリの値 = {0}", Enum.GetName(typeof(Stock), 2));
    }
}

実行結果

2番目の在庫カテゴリの値 = Clothing
3番目の在庫カテゴリの値 = Footwear

補足:より新しい書き方

.NET 5以降では、typeofを使わないジェネリックな構文も利用できます。

Enum.GetName<Stock>(1) // "Clothing" を返す

また、特定の定数名をそのまま文字列化したい場合は、ToString()メソッドも便利です。

Stock.Clothing.ToString() // "Clothing" を返す
  1. C#のGroupBy()メソッドとは?要素をグループ化する使い方を解説

    GroupBy()メソッドとはC#のGroupBy()は、System.Linq名前空間に用意されている拡張メソッドの一つです。指定したキー値に基づいてコレクション内の要素をグループ化し、その結果をIEnumerable<IGrouping<TKey, TElement>>として返します。各グループにはKeyプロパティが割り当てられ、同じキーを持つ要素がひとつのまとまりとして扱われます。サンプルコードまず、次のような整数型の配列を用意します。int[] arr = { 2, 30, 45, 60, 70 };この配列に対してGroupBy()を使い、「50以下の要素」と

  2. Javaのメソッド内に列挙型(enum)は定義できる?エラーの原因と正しい書き方を解説

    Javaの列挙型(enum)は、名前付き定数をひとつのグループとしてまとめて扱うための仕組みです。基本的な構文は以下のとおりです。enum Days { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }列挙型はクラスの中であれば定義できますが、メソッドの中で定義することはできません。メソッド内にenumを記述すると、コンパイル時に「enum types must not be local(列挙型はローカルにしてはならない)」というコンパイルエラーが発生します。エラーになるコード例次のように、メソッド内に直接