zoukankan      html  css  js  c++  java
  • 需要匹配的枚举描述

    using System;
    using System.ComponentModel;
    namespace ConsoleApp1
    {
        internal class Program
        {
            private static void Main(string[] args)
            {
                var value = GetEnumValueByDescription("在读", typeof(StudentStatusEnum));
                Console.WriteLine(value.ToString());
                Console.ReadKey();
            }
            #region 根据枚举描述获取枚举值
            /// <summary>
            /// 根据枚举描述获取枚举值
            /// </summary>
            /// <param name="description">需要匹配的枚举描述</param>
            /// <param name="en">枚举类型</param>
            /// <returns></returns>
            public static object GetEnumValueByDescription(string description, Type en)
            {
                var fields = en.GetFields();
                for (int i = 1, count = fields.Length; i < count; i++)
                {
                    var value = (int)Enum.Parse(en, fields[i].Name);
                    var enumAttributes = (DescriptionAttribute[])fields[i].GetCustomAttributes(typeof(DescriptionAttribute), false);
                    if (enumAttributes.Length > 0)
                    {
                        var desc = enumAttributes[0].Description;
                        if (desc == description)
                        {
                            return value;
                        }
                    }
                }
    
                return null;
            }
            #endregion
        }
        /// <summary>
        ///     学生状态
        /// </summary>
        public enum StudentStatusEnum
        {
            /// <summary>
            ///     在读
            /// </summary>
            [Description("在读")] Study = 0,
            /// <summary>
            ///     毕业
            /// </summary>
            [Description("毕业")] Graduate = 1,
            /// <summary>
            ///     退学
            /// </summary>
            [Description("退学")] Leave = 2,
            /// <summary>
            ///     休学
            /// </summary>
            [Description("休学")] Suspend = 3
        }
    }
  • 相关阅读:
    十天冲刺4
    单词统计
    十天冲刺3
    学习进度第十周
    十天冲刺2
    十天冲刺1
    梦断代码阅读笔记03
    学习进度第九周
    [强网杯 2019]Upload
    [2020 新春红包题]1
  • 原文地址:https://www.cnblogs.com/happen-/p/10973344.html
Copyright © 2011-2022 走看看