C# numeric enum value as string

前端 未结 8 1171
隐瞒了意图╮
隐瞒了意图╮ 2020-12-07 18:34

I have the following enum:

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

I can fetch an enum \"value

8条回答
  •  野趣味
    野趣味 (楼主)
    2020-12-07 19:01

    How about a little reflection? Should work with all underlying types.

    public static class EnumTools
    {
        public static string ToRawValueString(this Enum e)
        {
            return e
                .GetType()
                .GetFields(BindingFlags.Public | BindingFlags.Static)
                .First(f => f.Name==e.ToString())
                .GetRawConstantValue()
                .ToString();
        }
    }
    

    Then:

    Console.WriteLine(Urgency.High.ToRawValueString()); //Writes "2"
    

提交回复
热议问题