怎么获取枚举的值_枚举是值类型吗
怎么 获取 类型 枚举
2023-06-13 09:12:58 时间
最近在做一个学校的系统,其中用到一些枚举,可是在显示下拉列表时要绑定枚举的描述及其枚举值时就只一个一个的默认设死,这样不灵活。有没有其快捷方法?搜了下百度很多相关资料有了些许眉目,代码如下
1.首先定义枚举,这里要做显示学生状态的列表,如下所示
1 /// <summary> 2 /// 学生状态 3 /// </summary> 4 public enum StudentStatusEnum 5 { 6 /// <summary> 7 /// 在读 8 /// </summary> 9 [Description("在读")] 10 Study = 0, 11 12 /// <summary> 13 /// 毕业 14 /// </summary> 15 [Description("毕业")] 16 Graduate = 1, 17 18 /// <summary> 19 /// 退学 20 /// </summary> 21 [Description("退学")] 22 Leave = 2, 23 24 /// <summary> 25 /// 休学 26 /// </summary> 27 [Description("休学")] 28 Suspend = 3 29 }
2.循环取枚举属性,Enum.GetNames这个方法是获取枚举定义的属性(如Study),Enum.GetValues这个方法是获取枚举定义的属性值(如0)
1 foreach (var em in Enum.GetNames(typeof(StudentStatusEnum))) 2 { 3 var value = (int)Enum.Parse(typeof(StudentStatusEnum), em); 4 var name = ((StudentStatusEnum)Enum.Parse(typeof(StudentStatusEnum), em)).GetDescription(); 5 lst.Add(new BusinessObject { Name=name,Code=value.ToString()}); 6 }
3.GetDescription方法如下
1 public static string GetDescription(this object o) 2 { 3 return GetEnumAtribute(o); 4 } 5 6 public static string GetEnumAtribute(object obj) 7 { 8 if (obj == null) 9 return string.Empty; 10 var o = GetCustomAttribute<DescriptionAttribute>(obj); 11 if (o != null) 12 return o.Description; 13 return obj.ToString(); 14 } 15 16 public static ATT GetCustomAttribute<ATT>(object o) where ATT : Attribute 17 { 18 if (o == null) 19 return default(ATT); 20 System.Reflection.FieldInfo f = o.GetType().GetField(o.ToString()); 21 if (f == null) 22 return default(ATT); 23 var a = f.GetCustomAttributes(typeof(ATT), true).FirstOrDefault(); 24 if (a == null) 25 return default(ATT); 26 else 27 return (ATT)a; 28 }
完毕!!!
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/168237.html原文链接:https://javaforall.cn
相关文章
- python怎么安装matplotlib.pyplot_python安装matplotlib模块
- docker部署web项目_docker到底怎么用
- 死磕JS:var、let、const 该怎么选?
- 什么是p12证书?ios p12证书怎么获取?
- WordPress 怎么获取 所有用户的电子邮件?
- ssd硬盘数据怎么恢复_硬盘数据转移到另一个硬盘
- Linux shell怎么计算浮点数?
- [小白专栏]网站怎么套用cdn和怎么获取CDN的cname解析地址?
- where field in(...) 是怎么执行的?
- linux获取主机名后用gethostbyname() 不能获取主机ip,该怎么处理
- 我是怎么定位线上问题的?
- 怎么知道别人小程序的页面路径,小程序的页面路径在哪里看
- php 中输出控制器名称,Thinkphp5.0&&5.1怎么获取模块名控制器名方法名(权限配置中)
- ps2019软件安装教程,ps软件怎么下载安装--全版本photoshop软件获取
- 数据库开发知识:SpringBoot 怎么集成MongoDB实现文件上传功能
- Linux自学之路:实现技术飞跃(怎么自学linux)
- 如何轻松自学Linux(怎么自学linux)
- 学习 Linux:自学技巧及指南(怎么自学linux)
- Facebook是怎么做到每秒索引数百万条记录的?
- 「唯物」怎么追踪饮水量?这款水杯靠的是倾斜角度算法
- Redis如何获取值?(redis怎么取值)
- MySQL如何获取一对多关系数据(mysql一对多怎么获取)
- 清除MySQL命令行屏幕,让操作更清晰(mysql下怎么清屏)
- JavaScript怎么判断图片是否加载完成以便获取其尺寸