首页 > 编程语言 > 详细

Enum枚举类使用集合

时间:2014-12-20 02:00:58      阅读:343      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!