public static class EnumEx{ public static T GetValueFromDescription<T>(string description) { var type = typeof(T); if(!type.IsEnum) throw new InvalidOperationException(); foreach(var field in type.GetFields()) { var attribute = Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute)) as DescriptionAttribute; if(attribute != null) { if(attribute.Description == description) return (T)field.GetValue(null); } else { if(field.Name == description) return (T)field.GetValue(null); } } throw new ArgumentException("Not found.", nameof(description)); // or return default(T); }}用法:
var panda = EnumEx.GetValueFromDescription<Animal>("Giant Panda");

![从描述属性获取枚举[重复] 从描述属性获取枚举[重复]](http://www.mshxw.com/aiimages/31/465688.png)
