desc 枚举类型id_获取枚举类型的描述description

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Linq;

using System.Reflection;

using System.Text;

using System.Threading.Tasks;

namespace candel

{

class Program

{

static void Main(string args)

{

int x = (int)OrderType.WaitConfirm;

string str = Util.GetEnumDesc(typeof(OrderType), x);

Console.WriteLine(str);

Order o = new Order() { Id = 1, Type = (int)OrderType.Complete };

string str2 = (typeof(OrderType)).GetEnumDesc(o.Type);

Console.WriteLine(str2);

Console.Read();

}

}

public class Order

{

public int Id { set; get; }

public int Type { set; get; }

}

public enum OrderType

{

///

/// 等待用户付款

///

[ Description("等待用户付款")]

WaitPay = 0,

///

/// 等待商家发货

///

【   Description("等待商家发货")】

WaitSend = 1,

///

/// 等待用户确认收货

///

[ Description("等待用户确认收货")]

WaitConfirm = 2,

///

/// 订单完成

///

[Description("订单完成")]

Complete = 3

}

public static class Util

{

///

/// 根据值得到中文备注

///

///

///

///

public static String GetEnumDesc(this Type e, int? value)

{

FieldInfo fields = e.GetFields();

for (int i = 1, count = fields.Length; i < count; i++)

{

if ((int)System.Enum.Parse(e, fieldsi.Name) == value)

{

DescriptionAttribute EnumAttributes = (DescriptionAttribute)fieldsi.

GetCustomAttributes(typeof(DescriptionAttribute), false);

if (EnumAttributes.Length > 0)

{

return EnumAttributes0.Description;

}

}

}

return "";

}

}

}

下面的代码是在MVC后台控制器里把枚举各个值都读出来,拼接成select下的HTML

string html = "";

foreach (var one in Enum.GetValues(typeof(Model.OrderStatus)))

{

int v = (int)one;

string v2 = (typeof(OrderStatus)).GetEnumDesc(v);

html += $"{v2}";

}

ViewBag.selhtml = html;

return View();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值