Example #1
0
        /// <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);
        }
Example #2
0
        /// <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);
        }