• 枚举处理类


        public class EnumHelper
        {
            public static T GetEnumByDescription<T>(string description)
            {
                if (!string.IsNullOrEmpty(description))
                {
                    Type enumType = typeof(T);
                    EnumItemCollection enumItems = GetEnumItems(enumType);
                    foreach (EnumItem item in enumItems)
                    {
                        if (item.Description.ToString().ToLower() == description.Trim().ToLower()) return (T) Enum.ToObject(typeof(T), item.Value);
                    }
                }
                return default(T);
            }
    
            public static T GetEnumByKey<T>(string key)
            {
                return GetEnumByKey<T>(key, default(T));
            }
    
            public static T GetEnumByKey<T>(string key, T defaultValue)
            {
                T local = defaultValue;
                EnumItem enumItem = null;
                try
                {
                    Type enumType = typeof(T);
                    EnumItemsCache.Get(enumType).TryGet(key, out enumItem);
                    if (enumItem != null) local = (T) Enum.ToObject(enumType, enumItem.Value);
                }
                catch
                {
                    local = defaultValue;
                }
                return local;
            }
    
            public static T GetEnumByValue<T>(int value)
            {
                return GetEnumByValue<T>(value, default(T));
            }
    
            public static T GetEnumByValue<T>(string value)
            {
                return GetEnumByValue<T>(value, default(T));
            }
    
            public static T GetEnumByValue<T>(int value, T defaultValue)
            {
                T local = defaultValue;
                try
                {
                    EnumItemCollection enumItems = GetEnumItems(typeof(T));
                    foreach (EnumItem item in enumItems)
                    {
                        if (item.Value == value) local = (T) Enum.ToObject(typeof(T), item.Value);
                    }
                }
                catch
                {
                    local = defaultValue;
                }
                return local;
            }
    
            public static T GetEnumByValue<T>(string value, T defaultValue)
            {
                T local = defaultValue;
                try
                {
                    EnumItemCollection enumItems = GetEnumItems(typeof(T));
                    foreach (EnumItem item in enumItems)
                    {
                        if (item.Value.ToString() == value) local = (T) Enum.ToObject(typeof(T), item.Value);
                    }
                }
                catch
                {
                    local = defaultValue;
                }
                return local;
            }
    
            public static string GetEnumDescription(Enum enumField)
            {
                return GetEnumItem(enumField).Description;
            }
    
            public static EnumItem GetEnumItem<T>(T enumField)
            {
                return GetEnumItems(typeof(T))[enumField.ToString()];
            }
    
            public static EnumItem GetEnumItem(Enum enumField)
            {
                return GetEnumItems(enumField.GetType())[enumField.ToString()];
            }
    
            public static EnumItemCollection GetEnumItems(Type enumType)
            {
                return EnumItemsCache.Get(enumType);
            }
    
            public static T GetEnumObject<T>(string text)
            {
                return (T) Enum.Parse(typeof(T), text, true);
            }
        }
    

      

  • 相关阅读:
    mac md5/base64 终端处理 及文件处理js
    ag(Silver Searcher)查找文件
    js压缩之uglify-js
    iReport Designer在mac下打不开
    mac新建批处理文件,双击启动.sh文件
    将本地文件夹添加到Git仓库
    vue2.X + HTML5 plus 拍照和调用设备相册 另附 图片转base64和压缩图片方法
    Vue3-js 学习笔记
    Vue2.x 常用功能和方法
    typescript 编译报错 不能用于索引类型
  • 原文地址:https://www.cnblogs.com/bober/p/2805934.html
Copyright © 2020-2023  润新知