using System.ComponentModel;
public enum BusinessCategory
[Description("Computers & Internet")]
[Description("Finance & Banking")]
[Description("Healthcare")]
[Description("Manufacturing")]
public static void Main()
var values = Enum.GetValues(typeof(BusinessCategory)).Cast<BusinessCategory>();
Console.WriteLine("{0}[{1}] => {2}", v, (int)v, v.GetEnumDescription());
public static class EnumExtensions
public static string GetEnumDescription(this Enum value, string defaultValue = null)
return value.GetEnumAttribute<DescriptionAttribute>(a => a.Description, defaultValue);
private static string GetEnumAttribute<TAttr>(this Enum value, Func<TAttr, string> expr, string defaultValue = null)where TAttr : Attribute
FieldInfo fi = value.GetType().GetField(value.ToString());
var attributes = fi.GetCustomAttributes<TAttr>(false).ToArray();
return (attributes != null && attributes.Length > 0) ? expr(attributes.First()) : (defaultValue ?? value.ToString());