C# Enum Name String Description之间的相互转换
2024-10-10 20:23:45
最近工作中经常用到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");
}
最新文章
- Vim简要说明
- 如何反编译DLL文件
- Visio绘制时序图
- 我给女朋友讲编程html系列(1) -- Html快速入门
- 二叉搜索树的两种实现(数组模拟,STL)
- ios Swift 国外资源
- Android中View绘制优化之三---- 优化View
- 28.uva 10891 Game of Sum 记忆化dp
- 从用eclipse还是idea所想到的
- 漂亮的提示框SweetAlert使用教程
- Android 5.0 调色 Palette调色功能
- mysql知识点拾遗梳理
- windows10的环境变量path如何列表显示
- git push 时发生 error: failed to push some refs to 错误 (解决办法)
- Java lombok插件介绍
- iOS - is missing from working copy
- 关于Meta标签的一些知识
- 步步为营-10-string的简单操作
- Linux学习 用户管理
- 2018年1月 attribute VS prop 动画渲染