最近工作中经常用到Enum中Value、String、Description之间的相互转换,特此总结一下。

1.首先定义Enum对象

 public enum Weekday
{
[Description("星期一")]
Monday=,
[Description("星期二")]
Tuesday=,
[Description("星期三")]
Wednesday=,
[Description("星期四")]
Thursday=,
[Description("星期五")]
Friday=,
[Description("星期六")]
Saturday=,
[Description("星期日")]
Sunday=
}

2.根据string类型的值,获取相应的对象,例如:“Sunday”获取Weekday.Sunday.

 public static Weekday GetEnumFromString(string str)
{
Weekday week;
bool b = Enum.TryParse(str, true, out week);
if (b)
return week;
else
throw new Exception("没有找到对应的Enum");
}

3.根据Value类型的值,获取对应的description。

 public static String GetEnumDescription(Weekday week)
{ FieldInfo field = week.GetType().GetField(week.ToString());
object[] obj = field.GetCustomAttributes(typeof(DescriptionAttribute), false);
DescriptionAttribute da;
if (obj != null && obj.Length > )
{
da = (System.ComponentModel.DescriptionAttribute)obj[];
return da.Description;
}
else
throw new Exception("没有找到对应的Description");
}

4.根据Description的值,获取对应的Value。

  public static Weekday GetEnumFromDescription(string description)
{
foreach(Weekday week in Enum.GetValues(typeof(Weekday)))
{
if (description.Equals(GetEnumDescription(week))==true)
return week;
}
throw new Exception("没有找到对应的Enum");
}

最新文章

  1. Vim简要说明
  2. 如何反编译DLL文件
  3. Visio绘制时序图
  4. 我给女朋友讲编程html系列(1) -- Html快速入门
  5. 二叉搜索树的两种实现(数组模拟,STL)
  6. ios Swift 国外资源
  7. Android中View绘制优化之三---- 优化View
  8. 28.uva 10891 Game of Sum 记忆化dp
  9. 从用eclipse还是idea所想到的
  10. 漂亮的提示框SweetAlert使用教程
  11. Android 5.0 调色 Palette调色功能
  12. mysql知识点拾遗梳理
  13. windows10的环境变量path如何列表显示
  14. git push 时发生 error: failed to push some refs to 错误 (解决办法)
  15. Java lombok插件介绍
  16. iOS - is missing from working copy
  17. 关于Meta标签的一些知识
  18. 步步为营-10-string的简单操作
  19. Linux学习 用户管理
  20. 2018年1月 attribute VS prop 动画渲染

热门文章

  1. [.net 面向对象程序设计深入](0) 开篇
  2. 《R in Action》读书笔记(3) 数据变换
  3. A Beginner's Guide to Paxos
  4. spring事务管理器设计思想(一)
  5. 《深入理解 java虚拟机》学习笔记
  6. weblogic配置数据源
  7. HTML5应用缓存机制
  8. 【hbase0.96】基于hadoop搭建hbase的心得
  9. 彻底理解nth-child和nth-of-type的区别。
  10. ASP.NET Core的配置(4):多样性的配置来源[中篇]