zoukankan      html  css  js  c++  java
  • .NET C# List<T>工具方法

    1.工具类

    public static class ListExtensions
        {
            /// <summary>
            /// 无序或有序的ListT获取所有匹配对象的方法
            /// </summary>
            public static IEnumerable<T> GetAll<T>(this List<T> list, T searchValues)
            {
                return list.Where(p => p.Equals(searchValues));
            }

            /// <summary>
            /// 无序或有序的ListT获取所有匹配对象次数的方法
            /// </summary>
            public static int CountAll<T>(this List<T> list, T searchValues)
            {
                return list.GetAll(searchValues).Count();
            }

            /// <summary>
            /// 有序的ListT获取所有匹配对象的方法,要求List必须是有序的,否则返回的结果是错误的
            /// </summary>
            public static T[] BinarySearchGetAll<T>(this List<T> list, T searchValues)
            {
                List<T> result = new List<T>();

                //查找符合条件的第一个元素
                int center = list.BinarySearch(searchValues);
                if (center > 0)
                {
                    //添加入结果集合
                    result.Add(list[center]);

                    //往左查找
                    int left = center;
                    while (left > 0 && list[left - 1].Equals(searchValues))
                    {
                        left -= 1;
                        result.Add(list[left]);
                    }

                    //往右查找
                    int right = center;
                    while (right < list.Count - 1 && list[right + 1].Equals(searchValues))
                    {
                        right += 1;
                        result.Add(list[right]);
                    }

                }
                return result.ToArray();
            }


            /// <summary>
            /// 有序的ListT获取所有匹配对象次数的方法,要求List必须是有序的,否则返回的结果是错误的
            /// </summary>
            public static int BinarySearchCountAll<T>(this List<T> list, T searchValues)
            {
                return list.BinarySearchGetAll(searchValues).Length;
            }
        }

  • 相关阅读:
    element-ui分页组件修改当前页current-page后current-change事件不触发
    使用element-ui 的table 组件 表格线条不对齐
    vue 禁止浏览器自带的后退功能
    echart 柱图的(层叠柱图和柱图)label只显示总数 ,折线图的legent上显示总数
    element-ui table组件,分别设置表头和表格内容的居中,自定义渲染
    vue-cli-3+element-ui 按需引入element-ui的配置
    今天使用ElementUI与vue-quill-editor的时候发现,富文本编辑框选项对齐出现了点问题。
    vue-router 切换页面的时候,页面没有请求,
    msvcp140.dll缺失解决办法
    CTF中RSA题目的pem文件处理
  • 原文地址:https://www.cnblogs.com/jeff151013/p/11739759.html
Copyright © 2011-2022 走看看