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);
                }
            }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章