zoukankan      html  css  js  c++  java
  • C#枚举帮助EnumHelper

      1 public class EnumHelper
      2     {
      3         #region 获取枚举
      4         public static List<EnumValue> GetEnumList(Type enumType)
      5         {
      6             var list = new List<EnumValue>();
      7             string[] strArray = Enum.GetNames(enumType);
      8             foreach (string item in strArray)
      9             {
     10                 int enumValue = (int)Enum.Parse(enumType, item, true);
     11                 string text = GetEnumDescription(enumType, item);
     12 
     13                 list.Add(new EnumValue { Text = text, Value = enumValue });
     14 
     15             }
     16             return list;
     17         }
     18 
     19         public static List<EnumberEntity> EnumToList<T>()
     20         {
     21             var list = new List<EnumberEntity>();
     22 
     23             foreach (var e in Enum.GetValues(typeof(T)))
     24             {
     25                 var m = new EnumberEntity();
     26                 var objArr = e.GetType().GetField(e.ToString()).GetCustomAttributes(typeof(DescriptionAttribute), true);
     27                 if (objArr.Length > 0)
     28                 {
     29                     var da = objArr[0] as DescriptionAttribute;
     30                     if (da != null) m.Description = da.Description;
     31                 }
     32                 m.Value = Convert.ToInt32(e);
     33                 m.Name = e.ToString();
     34                 list.Add(m);
     35             }
     36             return list;
     37         }
     38 
     39         /// <summary>
     40         /// 获得描述
     41         /// </summary>
     42         /// <param name="value">枚举</param>
     43         /// <returns>描述内容</returns>
     44         public static string GetEnumDescription(Enum value)
     45         {
     46             if (value == null)
     47             {
     48                 throw new ArgumentNullException("value");
     49             }
     50 
     51             string description = value.ToString();
     52 
     53             Type eunmtype = value.GetType();
     54 
     55             return GetEnumDescription(eunmtype, description);
     56         }
     57 
     58         public static string GetEnumDescription(Type enumType, string name)
     59         {
     60             try
     61             {
     62                 DescriptionAttribute[] attributes = (DescriptionAttribute[])enumType.GetField(name).GetCustomAttributes(typeof(DescriptionAttribute), false);
     63                 if (attributes != null && attributes.Length > 0)
     64                 {
     65                     name = attributes[0].Description;
     66                 }
     67                 else
     68                 {
     69                     name = name.ToString();
     70                 }
     71                 return name;
     72             }
     73             catch
     74             {
     75                 return string.Empty;
     76             }
     77         }
     78         #endregion
     79     }
     80 
     81     public class EnumValue
     82     {
     83         public int Value { get; set; }
     84         public string Text { get; set; }
     85     }
     86 
     87     public class EnumberEntity
     88     {
     89         /// <summary>  
     90         /// 枚举的描述  
     91         /// </summary>  
     92         public string Description { set; get; }
     93 
     94         /// <summary>  
     95         /// 枚举名称  
     96         /// </summary>  
     97         public string Name { set; get; }
     98 
     99         /// <summary>  
    100         /// 枚举对象的值  
    101         /// </summary>  
    102         public int Value { set; get; }
    103     }
  • 相关阅读:
    【HDOJ】2267 How Many People Can Survive
    【HDOJ】2268 How To Use The Car
    【HDOJ】2266 How Many Equations Can You Find
    【POJ】2278 DNA Sequence
    【ZOJ】3430 Detect the Virus
    【HDOJ】2896 病毒侵袭
    求奇数的乘积
    平方和与立方和
    求数列的和
    水仙花数
  • 原文地址:https://www.cnblogs.com/mojiejushi/p/13377377.html
Copyright © 2011-2022 走看看