• C#获取枚举的描述


        public enum StatusEnum
        {
            /// <summary>
            /// 运行中
            /// </summary>
            [Description("运行中")]
            Running = 1,
            /// <summary>
            /// 已关闭
            /// </summary>
            [Description("已关闭")]
            Stopped = 0
        }
    public class EnumHelper
        {
            #region 静态方法
            public static Dictionary<string, string> GetEnumDescription<T>()
            {
                Dictionary<string, string> dic = new Dictionary<string, string>();
     
                FieldInfo[] fields = typeof(T).GetFields();
     
                foreach (FieldInfo field in fields)
                {
     
                    if (field.FieldType.IsEnum)
                    {
     
                        object[] attr = field.GetCustomAttributes(typeof(DescriptionAttribute), false);
     
                        string description = attr.Length == 0 ? field.Name : ((DescriptionAttribute)attr[0]).Description;
     
                        dic.Add(field.Name, description);
     
                    }
                }
     
                return dic;
            }
     
            /// <summary>        
            /// 获取对应的枚举描述        
            /// </summary>        
            public static List<KeyValuePair<string, string>> GetEnumDescriptionList<T>()
            {
                List<KeyValuePair<string, string>> result = new List<KeyValuePair<string, string>>();
     
                FieldInfo[] fields = typeof(T).GetFields();
     
                foreach (FieldInfo field in fields)
                {
                    if (field.FieldType.IsEnum)
                    {
     
                        object[] attr = field.GetCustomAttributes(typeof(DescriptionAttribute), false);
     
                        string description = attr.Length == 0 ? field.Name : ((DescriptionAttribute)attr[0]).Description;
     
                        result.Add(new KeyValuePair<string, string>(field.Name, description));
     
                    }
     
                }
                return result;
            }
     
     
            /// <summary>
            /// 获取枚举的 值和描述
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <returns></returns>
            public static List<KeyValuePair<int, string>> GetEnumValueDescriptionList<T>()
            {
                List<KeyValuePair<int, string>> result = new List<KeyValuePair<int, string>>();
                FieldInfo[] fields = typeof(T).GetFields();
                foreach (FieldInfo field in fields)
                {
                    if (field.FieldType.IsEnum)
                    {
                        object[] attr = field.GetCustomAttributes(typeof(DescriptionAttribute), false);
                        string description = attr.Length == 0 ? field.Name : ((DescriptionAttribute)attr[0]).Description;
                        result.Add(new KeyValuePair<int, string>(Convert.ToInt32(field.GetValue(null)), description));
                    }
                }
     
                return result;
            }
     
            public static string GetDescriptionByEnumName<T>(string name)
            {
                try
                {
                    Dictionary<string, string> dic = GetEnumDescription<T>();
                    string description = dic[name];
                    return description;
                }
                catch (Exception ex)
                {
                    return "";
                }
            }
            #endregion
        }
  • 相关阅读:
    查看CLOUD系统级IIS日志
    采购订单设置采购部门为缺省值
    单据头数据复制到单据体
    CLOUD设置过滤方案不共享
    BZOJ 4773: 负环 倍增Floyd
    LOJ #539. 「LibreOJ NOIP Round #1」旅游路线 倍增floyd + 思维
    BZOJ 4821: [Sdoi2017]相关分析 线段树 + 卡精
    一些常用公式/技巧
    BZOJ 4517: [Sdoi2016]排列计数 错排 + 组合
    BZOJ 3162: 独钓寒江雪 树的同构 + 组合 + 计数
  • 原文地址:https://www.cnblogs.com/wz122889488/p/5670433.html
Copyright © 2020-2023  润新知