如何从值中获取C#Enum描述?

如何从值中获取C#Enum描述?

我有一个描述属性的枚举,如下所示:

public enum MyEnum{
    Name1 = 1,
    [Description("Here is another")]
    HereIsAnother = 2,
    [Description("Last one")]
    LastOne = 3}

我找到了用于检索基于Enum的描述的代码

public static string GetEnumDescription(Enum value){
    FieldInfo fi = value.GetType().GetField(value.ToString());

    DescriptionAttribute[] attributes = fi.GetCustomAttributes(typeof(DescriptionAttribute), false) as DescriptionAttribute[];

    if (attributes != null && attributes.Any())
    {
        return attributes.First().Description;
    }

    return value.ToString();}

这允许我编写如下代码:

var myEnumDescriptions = from MyEnum n in Enum.GetValues(typeof(MyEnum))
                         select new { ID = (int)n, Name = Enumerations.GetEnumDescription(n) };

我想要做的是,如果我知道枚举值(例如1)-我如何检索描述?换句话说,如何将整数转换为“Enum值”以传递给GetDescription方法?


慕田峪7331174
浏览 1284回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP