码迷,mamicode.com
首页 > 编程语言 > 详细

Enum枚举类使用集合

时间:2014-12-20 02:04:13      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:

1、使用扩展方法使用枚举值对于的Description属性值

public static class EnumExtenstion
{
public static string GetDescriptionName(this Enum enumValue)
{
object[] attr = enumValue.GetType().GetField(enumValue.ToString())
.GetCustomAttributes(typeof(DescriptionAttribute), false);

if (attr.Length > 0)
return ((DescriptionAttribute)attr[0]).Description;

return "";
}
}

2、获取枚举Description属性值和枚举值的对于关系

/// <summary>
/// 获取枚举类型描述属性和枚举值的关系集合(如果没有描述信息或描述信息为空,则不建立关系)
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
public static Dictionary<string, int> GetEnumDescriptionAndValue<T>()
{
var dicFeatureStatusNameId = new Dictionary<string, int>();
FieldInfo[] fiArray = typeof(T).GetFields();
foreach (FieldInfo item in fiArray)
{
object[] attrs = item.GetCustomAttributes(typeof(DescriptionAttribute), false);
if (attrs.Length > 0) //有Description属性
{
string descriptionName = ((DescriptionAttribute)attrs[0]).Description; //枚举描述值
if (!string.IsNullOrWhiteSpace(descriptionName)
&& !dicFeatureStatusNameId.ContainsKey(descriptionName))
{
int value = item.GetValue(typeof(T)).GetHashCode(); //枚举值
dicFeatureStatusNameId.Add(descriptionName, value);
}
}
}

return dicFeatureStatusNameId;
}

 

Enum枚举类使用集合

标签:

原文地址:http://www.cnblogs.com/gossip/p/4174941.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!