zoukankan      html  css  js  c++  java
  • C# 集合分组,将一个集合分若干组

    static void Main(string[] args)
            {
                List<int> vs = new List<int>();
                for (int i = 0; i < 101; i++)
                {
                    vs.Add(i);
                }
                //分成3组
                SpliteSourceByCount(vs, 3);
                //根据页面大小分组 20
                SpliteSourceBySize(vs,20);
            }
    
           
     /// <summary>
            /// 将集合若干组
            /// </summary>
            /// <param name="source">数据集</param>
            /// <param name="pageSiez">每一组大小</param>
            private static List<List<int>> SpliteSourceBySize(List<int> source, int pageSiez)
            {
                int listCount = (source.Count() - 1) / pageSiez + 1;
    
                // 计算组数 
                List<List<int>> pages = new List<List<int>>();
                for (int pageIndex = 1; pageIndex <= listCount; pageIndex++)
                {
                    var page = source.Skip((pageIndex - 1) * pageSiez).Take(pageSiez).ToList(); pages.Add(page);
                }
                return pages;
            }
    
            /// <summary> /// 将集合若干组
            /// /// </summary> ///
            /// <param name="source">数据集</param> 
            /// /// <param name="count">组数</param> 
            private static List<List<int>> SpliteSourceByCount(List<int> source, int count)
            {
                int pageSiez = source.Count() / count;//取每一页大小 
                int remainder = source.Count() % count;//取余数 
                List<List<int>> pages = new List<List<int>>();
                for (int pageIndex = 1; pageIndex <= count; pageIndex++)
                {
                    if (pageIndex != count)
                    {
                        var page = source.Skip((pageIndex - 1) * pageSiez).Take(pageSiez).ToList(); pages.Add(page);
                    }
                    else
                    {
                        var page = source.Skip((pageIndex - 1) * pageSiez).Take(pageSiez + remainder).ToList(); pages.Add(page);
                    }
                }
                return pages;
            }
  • 相关阅读:
    Evaluate Reverse Polish Notation(逆波兰表达式)
    PostreSQL linux添加psql 命令
    C#用文件流读取cvs内容并返回DataTable,并把第一行设为列名
    鹅鹅鹅饿饿
    编译器和解释器
    delphi之多线程编程
    Arduino 板子 COM 接口找不到设备
    JS事件冒泡
    vi编辑器的使用(2)
    vi编辑器的使用(1)
  • 原文地址:https://www.cnblogs.com/houzf/p/12951000.html
Copyright © 2011-2022 走看看