zoukankan      html  css  js  c++  java
  • C# 枚举常用工具方法

            /// <summary>
            /// 获取枚举成员描述信息及名称
            /// 返回:IDictionary
            /// Value:描述信息
            /// Key:值
            /// </summary>
            /// <typeparam name="T">struct类型</typeparam>
            /// <returns>IDictionary</returns>
            protected IDictionary<string, string> GetEnumMemberList<T>() where T : struct
            {
                var members = typeof(T).GetMembers().Where(s => s.MemberType == System.Reflection.MemberTypes.Field);
    
                Dictionary<string, string> dict = new Dictionary<string, string>();
    
                foreach (var member in members)
                {
                    var attrs = member.GetCustomAttributes(typeof(DescriptionAttribute), false);
    
                    if (!attrs.Any())
                    {
                        continue;
                    }
    
                    var memberinfo = attrs[0] as DescriptionAttribute;
    
                    if (memberinfo != null)
                    {
                        dict.Add(member.Name, memberinfo.Description);
                    }
                }
    
                return dict;
            }
    
            /// <summary>
            /// 调用方法
            /// </summary>
            /// <param name="selectId"></param>
            /// <returns></returns>
            protected List<SelectListItem> Execute(int selectId)
            {
                var dict = GetEnumMemberList<SharedScope>();
    
                var list = new List<SelectListItem>();
                foreach (var info in dict)
                {
                    int value = (int)Enum.Parse(typeof(SharedScope), info.Key);
                    list.Add(
                        new SelectListItem
                        {
                            Value = value.ToString(),
                            Text = info.Value,
                            Selected = value == selectId
                        });
                }
    
                this.ViewData["Execute"] = list;
                return list;
            }
    

    上面代码是一个泛型的操作枚举的C#语言实现的工具类方法。

  • 相关阅读:
    最短路径(Dijkstra算法)
    图的优先级搜索
    图的遍历(搜索)

    树(二叉树)
    TF-池化函数 tf.nn.max_pool 的介绍
    TF-卷积函数 tf.nn.conv2d 介绍
    TF-图像的深度和通道的概念(转)
    MongoDB-MongoDB重装系统后恢复
    MYSQL-重做系统恢复MYSQL过程
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3287466.html
Copyright © 2011-2022 走看看