C# で enum と int 、 string を 相互 に 変換 する 方法

1 件のコメント

列挙型 (enum) から 文字列 (string) または 数値 (int/long等) に変換したり、その逆で、文字列 (string) や 数値 (int/long等) を 列挙型 (enum) に変換する方法について、まとめました。 ここでは、シンプルに 型の相互変換 についてのみ記載しています。

以下のサンプルコードでは、下に示す Season 列挙型 が存在する前提で記載しています。

[Flags]
public enum Season
{
    Spring = 0x01,
    Summer = 0x02,
    Autumn = 0x04,
    Winter = 0x08
}

列挙型(enum) → 文字列(string)

var enmVal = Season.Spring;
var strVal = Enum.GetName(typeof(Season), enmVal);

列挙型(enum) → 数値(int)

var enmVal = Season.Autumn | Season.Winter;
var intVal = (int)enmVal;

文字列(string) → 列挙型(enum)

var strVal = "spring, summer";
var enmVal = (Season)Enum.Parse(typeof(Season), strVal, true);

数値(int) → 列挙型(enum)

var intVal = 2;
var enmVal = (Season)Enum.ToObject(typeof(Season), intVal);

参考記事

  1. 丁度この情報を探していました!ありがとうございます!m(._.)m

    返信削除