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()
                });
        }
    }

时间: 2024-12-12 18:37:56

C#枚举描述获取的相关文章

获取根据枚举名称获取枚举描述

/// <summary> /// 获取根据枚举名称获取枚举描述 /// </summary> /// <typeparam name="T">枚举类型</typeparam> /// <param name="enumName">枚举名称</param> /// <returns></returns> public static string GetEnumDescri

获取枚举 描述

枚举的定义在程序开发中十分方便 .net 支持枚举使用中文 比如: public enum EnumIsPayType{ 免费 = 1, 付费 = 2 } 如果需要返回汉字的时候 public Int32?PayType{ get; set; } public string E_PayType { get { if (ScaleType.HasValue) { return Enum.GetName(typeof(EnumIsPayType),PayType); } return string.

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

C#可以通过反射,来获取枚举的描述信息或通过描述信息获取到指定类型的枚举 1 /// <summary> 2 /// 获取枚举描述 3 /// </summary> 4 /// <param name="enumName"></param> 5 /// <returns></returns> 6 public static string GetDescription(this Enum enumName) 7 {

[C#]枚举操作(从枚举中获取Description,根据Description获取枚举,将枚举转换为ArrayList)工具类

关键代码: using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Reflection; namespace CSharpUtilHelpV2 { /// <summary> /// 基于.NET 2.0的枚举工具类 /// </summary> public static class EnumToolV2

dotnet core 3.0 swagger 显示枚举描述

上一篇net core 2.2 swagger的枚举描述,core 3.0 需要升级swagger到5.0rc版,配置需要做些修改,swaager启用了OpenApi标准,之前的枚举描述方法也失效了. 这里通过了反射程序集,获取所有枚举定义放入字典,然后通过OpenApiSchema.Key来查表找到对应的枚举类型,通过Microsoft.OpenApi.Any.OpenApiInteger.Value强转会枚举,再补写枚举对应的描述. /// <summary> /// 基本状态 /// &

C#获取枚举描述代码

public class MusterEnum { /// 获取枚举的描述信息 /// </summary> /// <param name="e">传入枚举对象</param> /// <returns>得到对应描述信息</returns> public String GetEnumDesc(Enum e) { FieldInfo EnumInfo = e.GetType().GetField(e.ToString());

C#获取枚举描述文本

定义一个表示方向的枚举: public enum Position { [Description("上")] Up, [Description("下")] Down, [Description("左")] Left, [Description("右")] Right } 获取枚举的描述: public static string GetDescription<TEnum>(TEnum @enum) { FieldI

获取枚举描述

/// <summary> /// 枚举测试 /// </summary> public enum TestTypeEnum { [Description("书籍")]Book = 1, [Description("手机")]Phone = 2 } public static class EnumHelp { public static string GetDescription(this Enum value) { Type enumTyp

C#获取枚举描述

using System; using System.Collections.Generic; using System.ComponentModel; using System.Reflection; using System.Text; namespace JFJT.GemStockpiles.Helpers { public static class EnumHelper { /// <summary> /// 根据值得到中文备注 /// </summary> /// <