using System; using System.Collections.Generic; using System.ComponentModel; using CoreCms.Net.Model.ViewModels.UI; namespace CoreCms.Net.Utility.Helper { public class EnumHelper { /// /// 将枚举转成List /// /// /// public static List EnumToList() { List list = new List(); foreach (var e in Enum.GetValues(typeof(T))) { EnumEntity m = new EnumEntity(); object[] objArr = e.GetType().GetField(e.ToString()).GetCustomAttributes(typeof(DescriptionAttribute), true); if (objArr != null && objArr.Length > 0) { DescriptionAttribute da = objArr[0] as DescriptionAttribute; m.description = da.Description; } m.value = Convert.ToInt32(e); m.title = e.ToString(); list.Add(m); } return list; } /// /// 根据枚举值来获取单个枚举实体 /// /// 枚举 /// value /// public static EnumEntity GetEnumberEntity(int value) { foreach (var e in Enum.GetValues(typeof(T))) { EnumEntity m = new EnumEntity(); object[] objArr = e.GetType().GetField(e.ToString()).GetCustomAttributes(typeof(DescriptionAttribute), true); if (objArr != null && objArr.Length > 0) { DescriptionAttribute da = objArr[0] as DescriptionAttribute; m.description = da.Description; } m.value = Convert.ToInt32(e); m.title = e.ToString(); if (value == m.value) { return m; } } return null; } /// /// 根据枚举值value来获取单个枚举实体的文字描述内容 /// /// 枚举 /// value /// public static string GetEnumDescriptionByValue(int value) { foreach (var e in Enum.GetValues(typeof(T))) { EnumEntity m = new EnumEntity(); object[] objArr = e.GetType().GetField(e.ToString()).GetCustomAttributes(typeof(DescriptionAttribute), true); if (objArr != null && objArr.Length > 0) { DescriptionAttribute da = objArr[0] as DescriptionAttribute; m.description = da.Description; } m.value = Convert.ToInt32(e); m.title = e.ToString(); if (value == m.value) { return m.description; } } return ""; } /// /// 根据枚举key来获取单个枚举实体的文字描述内容 /// /// 枚举 /// value /// public static string GetEnumDescriptionByKey(string key) { foreach (var e in Enum.GetValues(typeof(T))) { EnumEntity m = new EnumEntity(); object[] objArr = e.GetType().GetField(e.ToString()).GetCustomAttributes(typeof(DescriptionAttribute), true); if (objArr != null && objArr.Length > 0) { DescriptionAttribute da = objArr[0] as DescriptionAttribute; m.description = da.Description; } m.value = Convert.ToInt32(e); m.title = e.ToString(); if (key == m.title) { return m.description; } } return ""; } } }