Enum枚举类使用集合
1、使用扩展方法使用枚举值对于的Description属性值
public static class EnumExtenstion { public static string GetDescriptionName(this Enum enumValue) { object[] attr = enumValue.GetType().GetField(enumValue.ToString()) .GetCustomAttributes(typeof(DescriptionAttribute), false); if (attr.Length > 0) return ((DescriptionAttribute)attr[0]).Description; return ""; } }
2、获取枚举Description属性值和枚举值的对于关系
/// <summary> /// 获取枚举类型描述属性和枚举值的关系集合(如果没有描述信息或描述信息为空,则不建立关系) /// </summary> /// <typeparam name="T"></typeparam> /// <returns></returns> public static Dictionary<string, int> GetEnumDescriptionAndValue<T>() { var dicFeatureStatusNameId = new Dictionary<string, int>(); FieldInfo[] fiArray = typeof(T).GetFields(); foreach (FieldInfo item in fiArray) { object[] attrs = item.GetCustomAttributes(typeof(DescriptionAttribute), false); if (attrs.Length > 0) //有Description属性 { string descriptionName = ((DescriptionAttribute)attrs[0]).Description; //枚举描述值 if (!string.IsNullOrWhiteSpace(descriptionName) && !dicFeatureStatusNameId.ContainsKey(descriptionName)) { int value = item.GetValue(typeof(T)).GetHashCode(); //枚举值 dicFeatureStatusNameId.Add(descriptionName, value); } } } return dicFeatureStatusNameId; }