Enum枚举类使用集合
集合 枚举 Enum 使用
2023-09-11 14:21:36 时间
1、使用扩展方法使用枚举值对于的Description属性值
public static class EnumExtenstion { public static string GetDescriptionName(this Enum enumValue) { object[] attr = enumValue.GetType().GetField(enumValue.ToString()) .GetCustomAttributes(typeof(DescriptionAttribute), false); if (attr.Length > 0) return ((DescriptionAttribute)attr[0]).Description; return ""; } }
2、获取枚举Description属性值和枚举值的对于关系
/// <summary> /// 获取枚举类型描述属性和枚举值的关系集合(如果没有描述信息或描述信息为空,则不建立关系) /// </summary> /// <typeparam name="T"></typeparam> /// <returns></returns> public static Dictionary<string, int> GetEnumDescriptionAndValue<T>() { var dicFeatureStatusNameId = new Dictionary<string, int>(); FieldInfo[] fiArray = typeof(T).GetFields(); foreach (FieldInfo item in fiArray) { object[] attrs = item.GetCustomAttributes(typeof(DescriptionAttribute), false); if (attrs.Length > 0) //有Description属性 { string descriptionName = ((DescriptionAttribute)attrs[0]).Description; //枚举描述值 if (!string.IsNullOrWhiteSpace(descriptionName) && !dicFeatureStatusNameId.ContainsKey(descriptionName)) { int value = item.GetValue(typeof(T)).GetHashCode(); //枚举值 dicFeatureStatusNameId.Add(descriptionName, value); } } } return dicFeatureStatusNameId; }
相关文章
- hdu4901 枚举状态(找集合对S(xor) ==T(and))
- 数组跟集合的差别
- 淘宝网址集合
- C#各种泛型集合体验
- 需求文档和软件都是服务的集合
- 【JavaSE】13-集合
- 集合转数组的toArray()和toArray(T[] a)方法
- 【Unity3D数据集合】(八)点阵列BitArray学习
- Java集合篇:HashMap原理详解(JDK1.8)
- Unity 基础 之 实现枚举(enum/Enum)遍历的三种简单方法(foreach/for)
- 对JAVA集合进行遍历删除时务必要用迭代器
- 算法2.1 假设利用两个线性表LA和LB分别表示两个集合A和B(即线性表中的数据元素即为集合中的成员),现要求一个新的集合A=AUB。这就要求对线性表作如下操作:扩大线性表LA。。。