您的位置:首页 > 其它

获取枚举类集合的方法

2016-03-31 10:48 281 查看
原文链接:http://www.cnblogs.com/QingLang-Raymond/articles/5340250.html

在公司的项目开发中常遇到需要取枚举值的key value descpt 的情况,所以写了这个方法,通过异步直接获取了某个枚举的集合包返回到客户端给前段使用。

 

需要遍历的枚举

public enum AdvertiserOrgEnum : byte
{
/// <summary>
/// 平台
/// </summary>
[Description("平台")]
Platform = 0,
/// <summary>
/// 加盟商
/// </summary>
[Description("加盟商")]
Merchant = 1,
/// <summary>
/// 便利店
/// </summary>
[Description("便利店")]
Store = 2,
/// <summary>
/// 权限平台使用
/// </summary>
[Description("仅限平台使用")]
OnlyPlatform = 4,
/// <summary>
/// 无
/// </summary>
[Description("无")]
Nothing = 5
}

 

遍历的方法

public string GetDictionaryAdvertiserOrgEnum()
{
//泛型储键值
Dictionary<string, string> dit = new Dictionary<string, string>();

//对应的值 和描述
string tmpValue = string.Empty;
string Descpt = string.Empty;

//AdvertiserOrgEnum 是需要获取集合的枚举
foreach (var value in Enum.GetValues(typeof (AdvertiserOrgEnum)))
{
object[] objAttrs =
value.GetType().GetField(value.ToString()).GetCustomAttributes(typeof (DescriptionAttribute), true);
if (objAttrs != null && objAttrs.Length > 0)
{
DescriptionAttribute descAttr = objAttrs[0] as DescriptionAttribute;
//枚举描述
Descpt = descAttr.Description;
}

//枚举值
tmpValue = Convert.ToInt32(value).ToString();
//value.toString(); 枚举名
dit.Add(tmpValue, Descpt);
}
//将对象转换成json字符串
return (new JavaScriptSerializer()).Serialize(dit);
}

当然返回的是json的字符串,所以,前端可按需求自行转换

GetDictionaryAdvertiserOrgEnum: function () {
var jsonlist;
$.ajax({
type: "POST",
url: "/Api/xxx/GetDictionaryAdvertiserOrgEnum",
dataType: "json",
success: function (data, textStatus) { //post成功

if (data) {
var jsonObject = eval('(' + data + ')');
$.each(jsonObject, function (k, v) {
jsonlist = { "key": k, "value": v };
AdvertiserOrgEnum.push(jsonlist);
});
}
},

});
},

 

参考的blogs:http://blog.csdn.net/razorluo/article/details/42707331

转载于:https://www.cnblogs.com/QingLang-Raymond/articles/5340250.html

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: