我有一个具有如下描述属性的枚举:
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 方法?
int value = 1; string description = Enumerations.GetEnumDescription((MyEnum)value);
enumC# 中 an的默认基础数据类型是 an int,您可以强制转换它。
enum
int