1. ホーム
  2. c#

[解決済み] C# numeric enum value as string

2023-06-07 18:01:43

質問

以下のようなenumがあります。

public enum Urgency {
    VeryHigh = 1,
    High     = 2,
    Routine  = 4
}

を取得することができます。 enum "値" を文字列として取得できます。 このように

((int)Urgency.Routine).ToString() // returns "4"  

注)とは異なります。

Urgency.Routine.ToString() // returns "Routine"
(int)Urgency.Routine       // returns 4

拡張クラスや静的ユーティリティクラスを作成し、構文解析を行う方法はありますか?)

どのように解決するのですか?

EnumsのToStringメソッドのオーバーロードを使用してフォーマット文字列を与えれば、enumの値を文字列として出力することができるはずです。

public static class Program
{
    static void Main(string[] args)
    {
        var val = Urgency.High;
        Console.WriteLine(val.ToString("D")); 
    }
}

public enum Urgency 
{ 
    VeryHigh = 1,
    High = 2,
    Low = 4
}