Можно создать дубликат:
Getting attributes of Enum’s valueКак получить описание 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 =
(DescriptionAttribute[])fi.GetCustomAttributes(
typeof(DescriptionAttribute),
false);
if (attributes != null &&
attributes.Length > 0)
return attributes[0].Description;
else
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?
(! Атрибуты = NULL) всегда будет true и else является избыточным. – Jeff
пространство имен, необходимое для описания, является System.ComponentModel –