MENU

【C#入門】enum型とstring型の相互変換方法を解説

C#でプログラミングを行う際、enum(列挙型)とstring(文字列型)の相互変換は頻繁に必要となる操作です。この記事では、C#におけるenum型とstring型の相互変換方法について、初心者の方にも分かりやすく解説していきます。

目次

enum型とは

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

以下は、方角を表すenumの例です:

enum Direction
{
    North,
    South,
    East,
    West
}

enum型からstring型への変換

enum型の値をstring型に変換する方法はいくつかありますが、最も簡単で一般的な方法はToString()メソッドを使用することです。

Direction direction = Direction.North;
string directionString = direction.ToString();
Console.WriteLine(directionString); // 出力: North

string型からenum型への変換

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

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

string directionString = "East";
Direction direction = (Direction)Enum.Parse(typeof(Direction), directionString);
Console.WriteLine(direction); // 出力: East

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

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

string directionString = "South";
if (Enum.TryParse<Direction>(directionString, out Direction direction))
{
    Console.WriteLine($"変換成功: {direction}");
}
else
{
    Console.WriteLine("変換失敗: 無効な方角です。");
}

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

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

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

string directionString = "west";
if (Enum.TryParse<Direction>(directionString, true, out Direction direction))
{
    Console.WriteLine($"変換成功: {direction}");
}
else
{
    Console.WriteLine("変換失敗: 無効な方角です。");
}

この方法を使用すると、”west”、”WEST”、”West”のいずれもDirection.Westに変換されます。

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

enumに関する関連記事

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

コメント

コメントする

目次