Возможный дубликат:
Получение атрибутов значения Enums
У меня есть перечисление с атрибутами Описание, как это:
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?