首页 > 代码库 > Enum枚举类使用集合

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 = http://www.mamicode.com/item.GetValue(typeof(T)).GetHashCode(); //枚举值dicFeatureStatusNameId.Add(descriptionName, value);}}}return dicFeatureStatusNameId;}

 

Enum枚举类使用集合