もくじ
目次(WPF/xaml/C#/C++関連メモ) - tera1707’s blog
やりたいこと
Enumで定義した値の名前から、Enumの値に直したいなと思ったときに、 intの値をEnumに直すなら
var a = (MyEnum)0;
みたいな感じで直せばよいと知っていたが、
enum MyEnum
{
Gundam,
Zaku,
Goggu,
}
というEnumがあったときに、"Gundam"
という文字列を‘MyEnum.Gundam‘に直そうと思ったらどうしたらよいのだったか??となったので、調べたことをメモする。
やりかた
Enum.Parse メソッド
を使う。
前提
下記環境で確認。
VisualStudio2022/.NET6/C#10
サンプル
Enum
クラスには、いろんなメソッドがあるようだが、パッと見た感じ、下記あたりが使い勝手よさそう。
MyEnum a; // int → Enum その① a = (MyEnum)0; // -> Gundam // int → Enum その② a = (MyEnum)Enum.ToObject(typeof(MyEnum), 2); Console.WriteLine(a); // -> Goggu // 文字列(Enum値の名前) → Enum a = Enum.Parse<MyEnum>("Gundam"); Console.WriteLine(a); // -> Gundam // 文字列(Enum値の名前/大文字小文字無視) → Enum a = Enum.Parse<MyEnum>("gUNDAM", true); Console.WriteLine(a); // -> Gundam // 文字列(Enum値) → Enum a = Enum.Parse<MyEnum>("1"); Console.WriteLine(a); // -> Zaku enum MyEnum { Gundam, Zaku, Goggu, }