1 2

c# 获取枚举字段描述

有时候,我们在定义枚举类型时,可能多个枚举结果属于一大类,当涉及到数据统计时,往往会对枚举类型或大类进行分组分类。

为了统一管理代码,尽量不要在代码逻辑中来自己制定分类。这个时候,在枚举上统一定义管理,就要合理得多。

复制代码
        /// <summary>
        /// 生活方式枚举
        /// </summary>
        public enum LifeStyle
        {
            [Description("学习充电")]
            读书 = 1,
            [Description("学习充电")]
            写博客 = 2,
            [Description("学习充电")]
            上网课 = 3,
            [Description("娱乐休闲")]
            打游戏 = 4,
            [Description("娱乐休闲")]
            逛街 = 5,
            [Description("娱乐休闲")]
            看小说 = 6,
            [Description("运动健身")]
            羽毛球 = 7,
            [Description("运动健身")]
            爬山 = 8,
            [Description("运动健身")]
            跑步 = 9,
        }
        public class EnumModel
        {
            public string name { get; set; }
            public int value { get; set; }
            public string desc { get; set; }
        }
        static void Main(string[] args)
        {
            List<EnumModel> result = new List<EnumModel>();
            var EnumInfo = (typeof(LifeStyle)).GetFields();

            foreach (var item in EnumInfo)
            {
                EnumModel model = new EnumModel();
                DescriptionAttribute[] EnumAttributes = (DescriptionAttribute[])item.GetCustomAttributes(typeof(DescriptionAttribute), false);

                if (EnumAttributes.Length > 0)
                {
                    model.desc = EnumAttributes[0].Description;
                    model.value = item.GetValue(typeof(LifeStyle)).GetHashCode();
                    model.name = item.Name;
                    result.Add(model);
                }
            }
复制代码

 

posted @   大海的泡沫  阅读(534)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
历史上的今天:
2018-07-28 c#WebApi使用form表单提交excel,实现批量写入数据库
1 2
点击右上角即可分享
微信分享提示