枚举工具
1 public static partial class Extensions 2 { 3 #region 枚举成员转成dictionary类型 4 /// <summary> 5 /// 转成dictionary类型 6 /// </summary> 7 /// <param name="enumType"></param> 8 /// <returns></returns> 9 public static Dictionary<int, string> EnumToDictionary(this Type enumType) 10 { 11 Dictionary<int, string> dictionary = new Dictionary<int, string>(); 12 Type typeDescription = typeof(DescriptionAttribute); 13 FieldInfo[] fields = enumType.GetFields(); 14 int sValue = 0; 15 string sText = string.Empty; 16 foreach (FieldInfo field in fields) 17 { 18 if (field.FieldType.IsEnum) 19 { 20 sValue = ((int)enumType.InvokeMember(field.Name, BindingFlags.GetField, null, null, null)); 21 object[] arr = field.GetCustomAttributes(typeDescription, true); 22 if (arr.Length > 0) 23 { 24 DescriptionAttribute da = (DescriptionAttribute)arr[0]; 25 sText = da.Description; 26 } 27 else 28 { 29 sText = field.Name; 30 } 31 dictionary.Add(sValue, sText); 32 } 33 } 34 return dictionary; 35 } 36 /// <summary> 37 /// 枚举成员转成键值对Json字符串 38 /// </summary> 39 /// <param name="enumType"></param> 40 /// <returns></returns> 41 //public static string EnumToDictionaryString(this Type enumType) 42 //{ 43 // List<KeyValuePair<int, string>> dictionaryList = EnumToDictionary(enumType).ToList(); 44 // var sJson = JsonConvert.SerializeObject(dictionaryList); 45 // return sJson; 46 //} 47 #endregion 48 49 #region 获取枚举的描述 50 /// <summary> 51 /// 获取枚举值对应的描述 52 /// </summary> 53 /// <param name="enumType"></param> 54 /// <returns></returns> 55 public static string GetDescription(this System.Enum enumType) 56 { 57 FieldInfo EnumInfo = enumType.GetType().GetField(enumType.ToString()); 58 if (EnumInfo != null) 59 { 60 DescriptionAttribute[] EnumAttributes = (DescriptionAttribute[])EnumInfo.GetCustomAttributes(typeof(DescriptionAttribute), false); 61 if (EnumAttributes.Length > 0) 62 { 63 return EnumAttributes[0].Description; 64 } 65 } 66 return enumType.ToString(); 67 } 68 #endregion 69 70 #region 根据值获取枚举的描述 71 public static string GetDescriptionByEnum<T>(this object obj) 72 { 73 var tEnum = System.Enum.Parse(typeof(T), obj.ParseToString()) as System.Enum; 74 var description = tEnum.GetDescription(); 75 return description; 76 } 77 #endregion 78 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构