C#ではint.Parse
やfloat.Parse
を使って文字列型から数値型への変換ができます。これと同じような感じで文字列型からenum
型に変換する方法がないかなと思って調べてみました。
ということで、System
にあるEnum.Parse
やEnum.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