• C#获取枚举的Description描述信息


      1 定义枚举:  

    public enum Pepole        

    {            

      [Description("男孩")]            

      boy=1,            

      [Description("女孩")]            

      girl=2,           

       man=3        

    }   

    2 泛型方法:获取枚举的说明信息

     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;   

    }

     3 使用方法:      

    Dictionary<string, string> dic =  GetEnumDescription<People>();

  • 相关阅读:
    Luogu 1514 引水入城
    HDU 2196 Computer
    CF460C Present
    初等数论整理
    2019UMS培训day6解题报告
    2019UMS培训day5解题报告
    2019UMS培训day3解题报告
    Luogu 1731 生日蛋糕
    JavaWeb之ServletContext域对象
    c3p0连接池
  • 原文地址:https://www.cnblogs.com/stevemin/p/3539310.html
Copyright © 2020-2023  润新知