using System; using System.Collections.Generic; using System.ComponentModel; using System.Reflection; using System.Text; namespace Admin.Core.Common { public static class EnumHelper { #region 静态方法 public static int ToInt(this System.Enum e) { return e.GetHashCode(); } public static Dictionary GetEnumDescription() { Dictionary dic = new Dictionary(); FieldInfo[] fields = typeof(T).GetFields(); foreach (FieldInfo field in fields) { if (field.FieldType.IsEnum) { object[] attr = field.GetCustomAttributes(typeof(DescriptionAttribute), false); string description = attr.Length == 0 ? field.Name : ((DescriptionAttribute)attr[0]).Description; dic.Add(field.Name, description); } } return dic; } /// /// 获取对应的枚举描述 /// public static List> GetEnumDescriptionList() { List> result = new List>(); FieldInfo[] fields = typeof(T).GetFields(); foreach (FieldInfo field in fields) { if (field.FieldType.IsEnum) { object[] attr = field.GetCustomAttributes(typeof(DescriptionAttribute), false); string description = attr.Length == 0 ? field.Name : ((DescriptionAttribute)attr[0]).Description; result.Add(new KeyValuePair(field.Name, description)); } } return result; } /// /// 获取枚举的 值和描述 /// /// /// public static List> GetEnumValueDescriptionList() { List> result = new List>(); FieldInfo[] fields = typeof(T).GetFields(); foreach (FieldInfo field in fields) { if (field.FieldType.IsEnum) { object[] attr = field.GetCustomAttributes(typeof(DescriptionAttribute), false); string description = attr.Length == 0 ? field.Name : ((DescriptionAttribute)attr[0]).Description; result.Add(new KeyValuePair(Convert.ToInt32(field.GetValue(null)), description)); } } return result; } public static string GetDescriptionByEnumName(string name) { try { Dictionary dic = GetEnumDescription(); string description = dic[name]; return description; } catch { return ""; } } #endregion } }