架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6801|回复: 2

[ASP.NET] 简单的枚举操作

[复制链接]
发表于 2019-1-10 09:58:32 | 显示全部楼层 |阅读模式
        /// <summary>
        /// 根据枚举的值获取枚举名称
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="key"></param>
        /// <returns></returns>
        public static string GetEnumNameByKey<T>(int key)
        {
            string nameStr = string.Empty;
            var type = typeof(T);
            nameStr = Enum.GetName(type, key);
            return nameStr;
        }

        /// <summary>
        /// 根据枚举的值获取枚举名称
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="t"></param>
        /// <returns></returns>
        public static string GetEnumNameByKey<T>(T t)
        {
            string nameStr = string.Empty;
            var type = typeof(T);
            nameStr = Enum.GetName(type, t);
            return nameStr;
        }

        /// <summary>
        /// 字符串转换为枚举类型
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="str"></param>
        /// <param name="t"></param>
        /// <returns></returns>
        private static bool StringConvertToEnum<T>(string str, out T t) where T : new()
        {
            var obj = false;
            t = new T();
            try
            {
                t = (T)Enum.Parse(typeof(T), str);
                obj = true;
            }
            catch (Exception ex)
            {
                obj = false;
            }

            return obj;
        }

        /// <summary>
        /// 获取枚举名称集合
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        public static string[] GetNamesArr<T>()
        {
            return Enum.GetNames(typeof(T));
        }

        /// <summary>
        /// 将枚举转换成字典集合
        /// </summary>
        /// <typeparam name="T">枚举类型</typeparam>
        /// <returns></returns>
        public static Dictionary<string, int> GetEnumDic<T>()
        {

            Dictionary<string, int> resultList = new Dictionary<string, int>();
            Type type = typeof(T);
            var strList = GetNamesArr<T>().ToList();
            foreach (string key in strList)
            {
                string val = Enum.Format(type, Enum.Parse(type, key), "d");
                resultList.Add(key, int.Parse(val));
            }
            return resultList;
        }

        /// <summary>
        /// 获取参数说明
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="t"></param>
        /// <returns></returns>
        public static string GetDescriptionByKey<T>(T t)
        {
            var type = t.GetType();
            FieldInfo fieldInfo = type.GetField(GetEnumNameByKey<T>(t));
            DescriptionAttribute attribute = Attribute.GetCustomAttribute(fieldInfo, typeof(DescriptionAttribute), false) as DescriptionAttribute;
            var Description = attribute.Description;
            return Description;
        }







上一篇:3年A班-从现在起大家都是人质【日剧】【720P】[更新至01]
下一篇:js实现下载文件
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2019-1-10 10:10:07 | 显示全部楼层
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2019-1-10 10:11:33 | 显示全部楼层
QQ图片20190110101051.png 程序代码 请插入 添加代码文字
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-5-5 20:23

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表