C#のEnum.Formatメソッドとは?列挙型の値を文字列に変換する方法
Enum.Formatメソッドとは
C#のEnum.Formatメソッドは、指定した列挙型(enum)の値を、それに対応する文字列表現へと変換するためのメソッドです。第3引数に書式指定子を渡すことで、出力形式を自由に制御できます。主な書式指定子は以下の通りです。
- d:10進数(Decimal)形式で出力
- x:16進数(Hexadecimal)形式で出力
- g:可能であれば定数名を、そうでなければ数値を出力
- f:ビットフラグの組み合わせとして表せる場合、フラグ名をカンマ区切りで出力
列挙型の定義例
まず、次のような列挙型を定義してみましょう。
enum Stock { PenDrive, Keyboard, Speakers };各メンバーに値を明示的に指定しない場合、先頭から順にデフォルト値が自動的に割り当てられます。
PenDrive = 0 Keyboard = 1 Speakers = 2
Enum.Formatの基本的な使い方
たとえば、「Keyboard」という名前に対応する定数値を取得したい場合は、まず次のように列挙型の変数を用意します。
Stock st = Stock.Keyboard;
そのうえで、Enum.Formatメソッドに「列挙型のType」「値」「書式指定子」を渡すことで、Keyboardの定数値を文字列として取得できます。
Enum.Format(typeof(Stock), st, "d")
サンプルコード
以下に、実際に動作する完全なサンプルプログラムを示します。
using System;
class Demo {
enum Stock { PenDrive, Keyboard, Speakers };
static void Main() {
Stock st = Stock.Keyboard;
Console.WriteLine("Product I need is {0}", st);
Console.WriteLine("Product value: {0}", Enum.Format(typeof(Stock), st, "d"));
}
}実行結果
Product I need is Keyboard Product value: 1
このように、Enum.Formatメソッドを活用すれば、列挙型の値を定数名や数値など、目的の形式の文字列へ柔軟に変換できます。デバッグ時のログ出力や、UIへの表示など、さまざまな場面で役立つ便利なメソッドです。
-
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(列挙型はローカルにしてはならない)」というコンパイルエラーが発生します。エラーになるコード例次のように、メソッド内に直接