我有一个带有Description属性的枚举,如下所示:
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)-如何获取描述?换句话说,如何将整数转换为“ Enum值”以传递给我的GetDescription方法?
int value = 1; string description = Enumerations.GetEnumDescription((MyEnum)value);
enumC#中默认的基础数据类型是int,您可以将其强制转换。
enum
int