Можно создать дубликат:
Finding an enum value by its Description AttributeGet Enum из описания атрибута
У меня есть универсальный метод расширения, который получает атрибут Description
из Enum
:
enum Animal
{
[Description("")]
NotSet = 0,
[Description("Giant Panda")]
GiantPanda = 1,
[Description("Lesser Spotted Anteater")]
LesserSpottedAnteater = 2
}
public static string GetDescription(this Enum value)
{
FieldInfo field = value.GetType().GetField(value.ToString());
DescriptionAttribute attribute
= Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute))
as DescriptionAttribute;
return attribute == null ? value.ToString() : attribute.Description;
}
так что я возможно ...
string myAnimal = Animal.GiantPanda.GetDescription(); // = "Giant Panda"
сейчас я пытаюсь разработать аналогичную функцию в другом направлении, что-то вроде ...
Animal a = (Animal)Enum.GetValueFromDescription("Giant Panda", typeof(Animal));
Если вы добавите ключевое слово «this» перед строкой ... public static T GetValueFromDescription (это описание строки) ...он становится методом расширения, и вы можете использовать синтаксис, например: var x = «Giant Panda» .GetValueFromDescription (); –
2012-02-29 18:16:10
Мне нравится этот подход. Работает для меня и является элегантным и точным. – beaudetious 2012-09-25 17:58:22