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" を返す
-
C#のGroupBy()メソッドとは?要素をグループ化する使い方を解説
GroupBy()メソッドとはC#のGroupBy()は、System.Linq名前空間に用意されている拡張メソッドの一つです。指定したキー値に基づいてコレクション内の要素をグループ化し、その結果をIEnumerable<IGrouping<TKey, TElement>>として返します。各グループにはKeyプロパティが割り当てられ、同じキーを持つ要素がひとつのまとまりとして扱われます。サンプルコードまず、次のような整数型の配列を用意します。int[] arr = { 2, 30, 45, 60, 70 };この配列に対してGroupBy()を使い、「50以下の要素」と
-
Javaのメソッド内に列挙型(enum)は定義できる?エラーの原因と正しい書き方を解説
Javaの列挙型(enum)は、名前付き定数をひとつのグループとしてまとめて扱うための仕組みです。基本的な構文は以下のとおりです。enum Days { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }列挙型はクラスの中であれば定義できますが、メソッドの中で定義することはできません。メソッド内にenumを記述すると、コンパイル時に「enum types must not be local(列挙型はローカルにしてはならない)」というコンパイルエラーが発生します。エラーになるコード例次のように、メソッド内に直接