/// <summary> /// 获取枚举描述列表,转换位键值对 /// </summary> /// <typeparam name="T">枚举类型</typeparam> /// <param name="isHasAll">是否包含全部</param> /// <param name="filterItem">过滤[描述]</param> /// <returns>枚举字典列表</returns> public static List <EnumKeyValue> EnumDescToList <T>(bool isHasAll, params string[] filterItem) { List <EnumKeyValue> list = new List <EnumKeyValue>(); if (isHasAll) { list.Add(new EnumKeyValue() { Key = 0, Name = "全部" }); } var type = typeof(T); var fieldsInfo = type.GetFields(); if (fieldsInfo.HasData()) { foreach (var item in fieldsInfo) { var curDescriptionAttr = Attribute.GetCustomAttribute(item, typeof(DescriptionAttribute)) as DescriptionAttribute; if (curDescriptionAttr != null && curDescriptionAttr.Description.IsNotNullOrEmpty()) { if (Array.IndexOf <String>(filterItem, curDescriptionAttr.Description) != -1) { continue; } EnumKeyValue value = new EnumKeyValue(); value.Key = (int)Enum.Parse(typeof(T), item.Name); value.Name = curDescriptionAttr.Description; list.Add(value); } } } return(list); }
/// <summary> /// 获取枚举值列表,转换位键值对 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="isHasAll"></param> /// <param name="filterItem"></param> /// <returns></returns> public static List <EnumKeyValue> EnumValueToList <T>(bool isHasAll, params string[] filterItem) { List <EnumKeyValue> list = new List <EnumKeyValue>(); if (isHasAll) { list.Add(new EnumKeyValue() { Key = 0, Name = "全部" }); } ; var values = Enum.GetValues(typeof(T)); if (values != null) { foreach (int item in values) { string name = Enum.GetName(typeof(T), item); if (Array.IndexOf <string>(filterItem, name) != -1) { continue; } ; EnumKeyValue value = new EnumKeyValue() { Key = item, Name = name }; list.Add(value); } } return(list); }