C# 获取枚举的描述、整形值、字符串值

枚举转到一个List,方便查找

      public class EnumItemModel
        {
            public string EnumName { get; set; }
            public int EnumValue { get; set; }
            public string Description { get; set; }
        }

        public static List<EnumItemModel> GetEnumItems<T>() where T : Enum
        {
            // 获取枚举的类型信息  
            Type enumType = typeof(T);

            // 获取枚举的名称数组和值数组  
            string[] enumNames = Enum.GetNames(enumType);
            Array enumValues = Enum.GetValues(enumType);

            // 创建一个列表来存储枚举项模型对象  
            List<EnumItemModel> enumItems = new List<EnumItemModel>();

            // 遍历枚举的名称和值数组  
            for (int i = 0; i < enumNames.Length; i++)
            {
                string name = enumNames[i];
                //int value = 0;
                int value = Convert.ToInt32(enumValues.GetValue(i));
                string description = GetEnumDescription(enumType, name);

                // 创建一个枚举项模型对象,并将其添加到列表中  
                EnumItemModel enumItem = new EnumItemModel { EnumName = name, EnumValue = value, Description = description };
                enumItems.Add(enumItem);
            }

            // 返回枚举项列表  
            return enumItems;
        }
        static string GetEnumDescription(Type enumType, string enumName)
        {
            // 使用反射获取枚举项的描述属性  
            FieldInfo fieldInfo = enumType.GetField(enumName);
            DescriptionAttribute[] attributes = (DescriptionAttribute[])fieldInfo.GetCustomAttributes(typeof(DescriptionAttribute), false);

            // 如果存在描述属性,则返回描述值,否则返回空字符串  
            return (attributes.Length > 0) ? attributes[0].Description : string.Empty;
        }

C# 获取枚举的描述、整形值、字符串值_第1张图片

你可能感兴趣的:(c#,开发语言)