• 获取枚举文本值和描述信息, 枚举转字典


     string name = Enum.GetName(value.GetType(), value);//枚举文本值

    aa c= (aa)Enum.Parse(typeof(aa), str)//字符串转枚举

    /// <summary>
            /// 返回枚举项的描述信息。
            /// </summary>
            /// <param name="value">要获取描述信息的枚举项。</param>
            /// <returns>枚举想的描述信息。</returns>
            public static string GetDescription(Enum value)
            {
                Type enumType = value.GetType();
                // 获取枚举常数名称。
                string name = Enum.GetName(enumType, value);
                if (name != null)
                {
                    // 获取枚举字段。
                    FieldInfo fieldInfo = enumType.GetField(name);
                    if (fieldInfo != null)
                    {
                        // 获取描述的属性。
                        DescriptionAttribute attr = Attribute.GetCustomAttribute(fieldInfo,
                            typeof(DescriptionAttribute), false) as DescriptionAttribute;
                        if (attr != null)
                        {
                            return attr.Description;
                        }
                    }
                }
                return null;
            }
    public enum aa
            {
                [Description("日志")]
                Log = 0,
                [Description("其他")]
                Other =1
            }
    
    
    
    var a = GetDescription(aa.Log);
    MessageBox.Show(a);
    
    输出 日志

     枚举转字典

    /// <summary>
            /// 枚举转字典(无需获取描述时使用)
            /// </summary>
            public IDictionary<int, string> EnumToDictionary(Type type)
            {
                string[] Names = System.Enum.GetNames(type);
                Array Values = System.Enum.GetValues(type);
                IDictionary<int, string> dic = new Dictionary<int, string>();
                for (int i = 0; i < Values.Length; i++)
                {
                    dic.Add((int)Values.GetValue(i), Names[i].ToString());
                }
                return dic;
            }

    地址:https://www.cnblogs.com/zhoushangwu/p/9581049.html

  • 相关阅读:
    redis 笔记
    经验:什么影响了数据库查询速度、什么影响了MySQL性能 (转)
    对于线程安全的一些理解
    重要的接口需要做哪些检查(转)
    数据库分库分表思路
    代码优化:Java编码技巧之高效代码50例
    java new一个对象的过程中发生了什么
    java如何防止反编译(转)
    运用加密技术保护Java源代码(转)
    redis 工具包
  • 原文地址:https://www.cnblogs.com/shuaimeng/p/10212515.html
Copyright © 2020-2023  润新知