MENU

【C#入門】enum型と文字列の相互変換方法を分かりやすく解説

C#でプログラミングを行う際、enum(列挙型)と文字列の相互変換は非常によく使われる操作です。この記事では、C#におけるenum型と文字列の変換方法について、初心者の方にも理解しやすいように説明していきます。

目次

enum型とは

まずはenum型について簡単に説明しましょう。enum型は、名前付きの定数のグループを表現するためのデータ型です。コード内で特定の値の集合を扱う際に非常に便利で、コードの可読性を高めてくれます。

以下は、曜日を表すenumの例です:

enum DayOfWeek
{
    Sunday,
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday
}

enum型から文字列への変換

enum型の値を文字列に変換する方法は非常に簡単です。ToString()メソッドを使用するだけで済みます。

DayOfWeek today = DayOfWeek.Wednesday;
string dayString = today.ToString();
Console.WriteLine(dayString); // 出力: Wednesday

文字列からenum型への変換

文字列をenum型に変換する場合は、Enum.Parse()メソッドまたはEnum.TryParse()メソッドを使用します。

Enum.Parse()メソッドを使用する例:

string dayString = "Friday";
DayOfWeek day = (DayOfWeek)Enum.Parse(typeof(DayOfWeek), dayString);
Console.WriteLine(day); // 出力: Friday

ただし、Enum.Parse()メソッドは、文字列がenum値に一致しない場合に例外をスローします。そのため、より安全な方法としてEnum.TryParse()メソッドの使用をおすすめします。

Enum.TryParse()メソッドを使用する例:

string dayString = "Saturday";
if (Enum.TryParse<DayOfWeek>(dayString, out DayOfWeek day))
{
    Console.WriteLine($"変換成功: {day}");
}
else
{
    Console.WriteLine("変換失敗: 無効な曜日です。");
}

Enum.TryParse()メソッドは、変換が成功した場合はtrueを返し、失敗した場合はfalseを返します。これにより、無効な文字列が入力された場合でもプログラムがエラーで停止することを防げます。

大文字小文字を区別しない変換

デフォルトでは、文字列からenum型への変換は大文字小文字を区別します。大文字小文字を区別せずに変換したい場合は、以下のようにEnum.TryParse()メソッドに引数を追加します:

string dayString = "sunday";
if (Enum.TryParse<DayOfWeek>(dayString, true, out DayOfWeek day))
{
    Console.WriteLine($"変換成功: {day}");
}
else
{
    Console.WriteLine("変換失敗: 無効な曜日です。");
}

この方法を使用すると、”sunday”、”SUNDAY”、”Sunday”のいずれもDayOfWeek.Sundayに変換されます。

enum型と文字列の相互変換は、ユーザー入力の処理やデータの保存、読み込みなど、様々な場面で活用できます。この記事で紹介した方法を使いこなすことで、より柔軟で堅牢なC#プログラムを書くことができるでしょう。

enumに関する関連記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次