C# 枚举操作扩展类
2014-01-22 11:01
429 查看
using System; using System.Linq; using System.ComponentModel; namespace Demo.Common { /// <summary> /// Enum帮助类 /// </summary> public static class EnumHelper { /// <summary> /// 获取枚举成员的值(this是扩展方法的标志) /// </summary> /// <param name="obj"></param> /// <returns></returns> public static int ToInt(this Enum obj) { return Convert.ToInt32(obj); } public static T ToEnum<T>(this string obj) where T : struct { if (string.IsNullOrEmpty(obj)) { return default(T); } try { return (T)Enum.Parse(typeof(T), obj, true); } catch (Exception) { return default(T); } } /// <summary> /// 获取指定枚举成员的描述 /// </summary> /// <param name="obj"></param> /// <returns></returns> public static string ToDescriptionString(this Enum obj) { var attribs = (DescriptionAttribute[])obj.GetType().GetField(obj.ToString()).GetCustomAttributes(typeof(DescriptionAttribute), false); return attribs.Length > 0 ? attribs[0].Description : obj.ToString(); } /// <summary> /// 根据枚举值,获取指定枚举类的成员描述 /// </summary> /// <param name="type"></param> /// <param name="id"></param> /// <returns></returns> public static string GetDescriptionString(this Type type, int? id) { var values = from Enum e in Enum.GetValues(type) select new { id = e.ToInt(), name = e.ToDescriptionString() }; if (!id.HasValue) id = 0; try { return values.ToList().Find(c => c.id == id).name; } catch { return ""; } } } }
相关文章推荐
- [C#]集合已修改;可能无法执行枚举操作
- 怎么回事儿?C#错误:集合已修改;枚举操作可能无法执行。
- C#中出现“集合已修改;可能无法执行枚举操作”错误 foreach list.Remove()
- NET 集合已修改 可能无法执行枚举操作 C#
- 【转载】[C#]枚举操作(从枚举中获取Description,根据Description获取枚举,将枚举转换为ArrayList)工具类
- 黄聪:C#使用能够foreach对hashtable、List遍历时“集合已修改;可能无法执行枚举操作。”错误
- C#通过反射进行枚举描述相关操作
- C#:USB设备枚举(七)WPF扩展方法
- c# 枚举返回字符串操作
- C# 枚举基本用法及扩展方法
- C#中foreach出现“集合已修改 可能无法执行枚举操作”的解决方法
- C# 扩展方法应用二:文件操作
- C# 枚举器 手动实现枚举器 可枚举集合 枚举器操作 迭代器
- C#Enum常用枚举操作
- C#使用List出现“集合已修改;可能无法执行枚举操作”错误的解决办法
- C#对枚举的常用操作
- [C#]枚举操作(从枚举中获取Description,根据Description获取枚举,将枚举转换为ArrayList)工具类
- C# 集合已修改;可能无法执行枚举操作
- 从零开始学_JavaScript_系列(40)——对象的扩展(3)当枚举、原型链遇见对属性的操作
- 09 C# 第八章 值类型 ------ 装箱操作和枚举的使用