1. 程式人生 > 實用技巧 >c# 獲取列舉欄位描述

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