c#获取枚举
2016-11-28 15:00
260 查看
在实际开发项目中,我们定义了一个枚举,往往我们需要在下拉框或其它地方展示枚举。为了加深印象,也为了帮到有需要的人,我写了一个DEMO。
第一步,我们定义一个枚举:
第二步,为了方便查看我们获取的枚举,我们定义一个枚举模型:
第三步,编写获取枚举的代码:
最后一步,使用第三步定义的函数:
到此,获取枚举就完成了。。
第一步,我们定义一个枚举:
/// <summary> /// 测试枚举 /// </summary> public enum EnumStatus { [Description("状态1")] A = 1, [Description("状态2")] B = 2, [Description("状态3")] C = 3 }
第二步,为了方便查看我们获取的枚举,我们定义一个枚举模型:
/// <summary> /// 定义枚举模型 /// </summary> public class EnumModel { /// <summary> /// 枚举名称(类似本实例的A、B、C) /// </summary> public string Name { get; set; } /// <summary> /// 枚举值(类似本实例的1、2、3) /// </summary> public int Value { get; set; } /// <summary> /// 枚举描述 /// </summary> public string Description { get; set; } }
第三步,编写获取枚举的代码:
/// <summary> /// 获取枚举 /// </summary> /// <param name="type">枚举类型</param> /// <returns></returns> static List<EnumModel> Get(Type type) { List<EnumModel> list = new List<EnumModel>(); //获取枚举的所有字段 var enumFields = type.GetFields(); //遍历枚举的每个字段,读取每个枚举字段的属性值 foreach (var field in enumFields) { EnumModel model = new EnumModel(); var attribute = Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute), false) as DescriptionAttribute; if (attribute != null) { model.Description = attribute.Description;//枚举描述 model.Name = field.Name;//枚举名称 model.Value = (int)Enum.Parse(type, field.Name);//枚举值 list.Add(model); } } return list; }
最后一步,使用第三步定义的函数:
static void Main(string[] args) { //获取枚举类型 var enumType = typeof(EnumStatus); //获取枚举的属性 var list = Get(enumType); //打印获取到的枚举属性值 list.ForEach(item => { Console.WriteLine(string.Format("Description:{0},Name:{1},Value:{2}", item.Description, item.Name, item.Value));//打印枚举属性 }); Console.ReadLine(); }
到此,获取枚举就完成了。。
相关文章推荐
- C# 获取枚举 Enum 变量值的 Description 属性
- C# 获取枚举类型中所有描述信息
- C# 获取枚举的 键名称,值 和描述 遍历枚举
- C# --通过枚举获取系统颜色
- C# 枚举转键值对,获取描述等通用方法
- C# 枚举的获取方法
- C#获取枚举的描述
- 【转载】[C#]枚举操作(从枚举中获取Description,根据Description获取枚举,将枚举转换为ArrayList)工具类
- C# 枚举使用和对应说明获取实例
- 【C#枚举】根据EnumName获取Value
- C#获取枚举描述代码
- C# 获取枚举的值
- C#给枚举增加一个Attribute,并通过反射获取Attribute的值。(借鉴)
- [C#]枚举操作(从枚举中获取Description,根据Description获取枚举,将枚举转换为ArrayList)工具类
- C# 获取与解析枚举类型的 DescriptionAttribute
- C# 获取枚举类型中所有描述信息
- .NET(C#):使用反射来获取枚举的名称、值和特性【转】
- c#枚举类型的内容全部获取和字符串转换为枚举类型的方法
- C#中循环获取枚举中的名称和值
- C#工具类(包含获取枚举描述方法)