12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Common
- {
- public static class EnumHelper
- {
- /// <summary>
- /// 私有,,获取彩种配置的方法
- /// </summary>
- /// <returns></returns>
- public static IEnumerable<EnumModel> GetEnumList<T>()
- {
- var list = new List<EnumModel>();
- foreach (var field in typeof(T).GetFields())
- {
- if (!field.IsSpecialName)
- {
- var d = field.GetCustomAttributes(typeof(DescriptionAttribute), true);
- var o = field.GetCustomAttributes(typeof(OtherAttribute), true);
- list.Add(new EnumModel
- {
- Key = field.Name,
- Value = (int)field.GetRawConstantValue(),
- Description = d.Count() > 0 ? (d[0] as DescriptionAttribute).Description : "",
- Other = o.Count() > 0 ? (o[0] as OtherAttribute).Name : "",
- });
- }
- }
- return list;
- }
- /// <summary>
- /// 通过key获取EnumModel
- /// </summary>
- /// <param name="list"></param>
- /// <param name="value"></param>
- /// <returns></returns>
- public static EnumModel GetEnumModelByKey(this List<EnumModel> list, string value)
- {
- return list.Where(p => p.Key == value).FirstOrDefault();
- }
- public static EnumModel GetEnumModelByKey(this List<EnumModel> list, Enum value)
- {
- return list.Where(p => p.Key == value.ToString()).FirstOrDefault();
- }
- /// <summary>
- /// 根据EnumModel的Enum获取相应的详情
- /// </summary>
- /// <param name="list"></param>
- /// <param name="value"></param>
- /// <returns></returns>
- public static string GetEnumDescription(this List<EnumModel> list, Enum value)
- {
- return list.Where(p => p.Key == value.ToString()).FirstOrDefault().Description;
- }
-
- }
- }
|