列挙型 (enum) から 文字列 (string) または 数値 (int/long等) に変換したり、その逆で、文字列 (string) や 数値 (int/long等) を 列挙型 (enum) に変換する方法について、まとめました。 ここでは、シンプルに 型の相互変換 についてのみ記載しています。
以下のサンプルコードでは、下に示す Season 列挙型
が存在する前提で記載しています。
1 2 3 4 5 6 7 8 | [Flags] public enum Season { Spring = 0x01, Summer = 0x02, Autumn = 0x04, Winter = 0x08 } |
列挙型(enum) → 文字列(string)
1 2 | var enmVal = Season.Spring; var strVal = Enum.GetName( typeof (Season), enmVal); |
列挙型(enum) → 数値(int)
1 2 | var enmVal = Season.Autumn | Season.Winter; var intVal = ( int )enmVal; |
文字列(string) → 列挙型(enum)
1 2 | var strVal = "spring, summer" ; var enmVal = (Season)Enum.Parse( typeof (Season), strVal, true ); |
数値(int) → 列挙型(enum)
1 2 | var intVal = 2; var enmVal = (Season)Enum.ToObject( typeof (Season), intVal); |
参考記事
- MSDN - enum (C# リファレンス)
- MSDN - 列挙型 (C# プログラミング ガイド)
- DOBON.NET プログラミング道 - 数値や文字列を列挙体に変換する
- ひっそりと・とぼとぼと - 【C#】列挙体⇔数値、文字列変換
最後に… このブログに興味を持っていただけた方は、 ぜひ 「Facebookページ に いいね!」または 「Twitter の フォロー」 お願いします!!