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に関する関連記事
-
C# enum
【C#入門】enum Flags属性の使い方と活用法
-
C# enum
【C#入門】enumと数値の関係:基本から応用まで
-
C# enum
【C#入門】enumと継承の関係:基本から応用まで
-
C# enum
【C#入門】IEnumerableインターフェースの基本と活用方法
-
C# enum
【C#入門】enumをToString()で文字列に変換する方法
-
C# enum
【C#入門】enumをforeachで簡単に列挙する方法
-
C# enum
【C#入門】enum型と文字列の相互変換方法を分かりやすく解説
-
C# enum
【C#入門】enum型とstring型の相互変換方法を解説
-
C# enum
【C#入門】enum型とint型の相互変換方法を徹底解説!
コメント