C#枚举描述获取

Posted GUOKUN

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#枚举描述获取相关的知识,希望对你有一定的参考价值。

 public static class EnumExtension
    {
        public static string GetDescription(this Enum value)
        {
            FieldInfo field = value.GetType().GetField(value.ToString());
            DescriptionAttribute attribute = Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute)) as DescriptionAttribute;

            return attribute == null ? value.ToString() : attribute.Description;
        }

        //public static IEnumerable<EnumItem> GetDictionary<TEnum>(this TEnum tEnum)
        //    where TEnum : struct
        //{
        //    return Enum.GetValues(typeof(TEnum)).OfType<Enum>()
        //        .Select(x => new EnumItem
        //        {
        //            Key = Convert.ToInt32(x),
        //            Value = x.ToString(),
        //            Description = x.GetDescription()
        //        });
        //}

        public static IEnumerable<EnumItem> GetDictionary(Type tEnum)
        {
            return Enum.GetValues(tEnum).OfType<Enum>()
                .Select(x => new EnumItem
                {
                    Key = Convert.ToInt32(x),
                    Value = x.ToString(),
                    Description = x.GetDescription()
                });
        }
    }

以上是关于C#枚举描述获取的主要内容,如果未能解决你的问题,请参考以下文章

C#中获取枚举的描述属性

C#通过反射进行枚举描述相关操作

如何在 C# 中获取枚举项? [复制]

C# 根据数字值获取相应枚举

如何在 C# 中获取枚举索引值

如何在 C# 中按值获取枚举对象?