Enum.Parseの使い方

C#ではint.Parsefloat.Parseを使って文字列型から数値型への変換ができます。これと同じような感じで文字列型からenum型に変換する方法がないかなと思って調べてみました。

ということで、SystemにあるEnum.ParseEnum.TryParseを使うと良いみたいです。

使い方は次のような感じです。

enum Example { Apple, Orange, Grape }

Enum.Parse

try {
  var value = (Example)Enum.Parse(typeof(Example), "Apple");
  // 実行したい処理
}
catch (ArgumentException) {
  // エラー処理
}

Enum.TryParse

Example value;

if (Enum.TryParse("Apple", out value)) {
  // 実行したい処理
}

大文字・小文字を無視して変換したい場合はignoreCase=falseとしてみてください。

リンク

Enum.Parse Method (System) | Microsoft Docs
https://docs.microsoft.com/en-us/dotnet/api/system.enum.parse?view=netframework-4.8

Enum.TryParse Method (System) | Microsoft Docs
https://docs.microsoft.com/en-us/dotnet/api/system.enum.tryparse?view=netframework-4.8

関連記事

C#のcharを大文字・小文字に変換する方法
C#のstringを大文字・小文字に変換したい場合はToLower/ToUpperが使えます。 string s; // 小文字に変換 s.ToLower(); // 大文字に変換 s.ToUpper(); そこで、charを大文字・小文字に変換したい場合に何か簡単な方法がないか調べてみたところChar.ToLower/Char.ToUpperというのが便利みたいです。 使...

C#の文字列補完
string.Formatを使うと、次のような感じで変数の値を文字列に変換して出力できます。 コード string name = "abc"; int value = 123; Debug.Log(string.Format("name={0}, value={1}", name, value)); 出力 name=abc, value=123 便利でよく使っていた...

C#で数字を3桁ごとにコンマで区切って表示する簡単な方法
数字を3桁ごとにコンマで区切って表示したい場合、C#では文字列補間の補間式を使うと簡単にできるみたいです。 補完式の使い方は次のような感じです。 {<interpolationExpression>[,<alignment>][:<formatString>]} サンプル int price = 12345; Console.WriteL...

C#で文字列の分割
C#ではSplitというメソッドを使うことで簡単に文字列の分割ができます。 使い方は次のような感じです。 コンマ「,」かハイフン「-」で分割 using System; class Example1 { static public void Main() { string str = "one,two-three"; char[] sep = { '...