C#循环枚举得到枚举的注释和值

首先定义一个枚举

/// <summary> /// 枚举注释的自定义属性类 /// </summary> public class EnumDescriptionAttribute : Attribute { private string m_strDescription; public EnumDescriptionAttribute(string strPrinterName) { m_strDescription = strPrinterName; } public string Description { get { return m_strDescription; } } } /// <summary> /// 测试类型 /// </summary> public enum TestType { /// <summary> /// 分静态精度测量 /// </summary> [EnumDescription("分静态精度测量")] StaticPrecisionOpen, /// <summary> /// 合静态精度测量 /// </summary> [EnumDescription("合静态精度测量")] StaticPrecisionClose, /// <summary> /// 副分静态精度测量 /// </summary> [EnumDescription("副分静态精度测量")] StaticPrecisionOPenSec, /// <summary> /// 频谱分析 /// </summary> [EnumDescription("频谱分析")] Dynamic, /// <summary> /// 分电流峰值 /// </summary> [EnumDescription("分电流峰值")] CurMaxOpen, /// <summary> /// 合电流峰值 /// </summary> [EnumDescription("合电流峰值")] CurMaxClose }

接下来通过循环得到枚举的值和注释

 Dictionary<string, int> enumDic = new Dictionary<string, int>();

        public void ForEnum()
        {
            Type t = typeof(TestType);
            Array arrays = Enum.GetValues(t);
            for (int i = 0; i < arrays.LongLength; i++)
            {
                TestType test = (TestType)arrays.GetValue(i);
                FieldInfo fieldInfo = test.GetType().GetField(test.ToString());
                object[] attribArray = fieldInfo.GetCustomAttributes(false);
                EnumDescriptionAttribute attrib = (EnumDescriptionAttribute)attribArray[0];
                enumDic.Add(attrib.Description, (int)test);
            }
        }

转载于:https://www.cnblogs.com/rogation/archive/2012/11/23/2784118.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值