小编典典

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

all

我有一个具有如下描述属性的枚举:

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

我发现这段代码用于基于枚举检索描述

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) - 我如何检索描述?换句话说,如何将整数转换为“枚举值”以传递给我的 GetDescription 方法?


阅读 114

收藏
2022-03-17

共1个答案

小编典典

int value = 1;
string description = Enumerations.GetEnumDescription((MyEnum)value);

enumC# 中 an的默认基础数据类型是 an int,您可以强制转换它。

2022-03-17