因为经常要对List<T>或者DataTable进行分组,所以就封装了一下
其实也没有什么,主要是DataTable要用ImportRow方法

public class OtherManager<T>
    {
        /// <summary>
        /// 对List进行分片
        /// </summary>
        /// <param name="source">要分片的List<T></param>
        /// <param name="pageSize">分片的页容积</param>
        /// <returns></returns>
        public static List<List<T>> Segement(List<T> source, int pageSize)
        {
            List<List<T>> list = new List<List<T>>();

if (source == null || source.Count == 0)
            {
                return list;
            }

int totalRec = source.Count;

int totalPage = totalRec % pageSize == 0 ? totalRec / pageSize : totalRec / pageSize + 1;
          
            for (int index = 0; index < totalPage; index++)
            {
                int start = index * pageSize;
                List<T> tmp = new List<T>();
                if (index == totalPage - 1)//最后一页,半页
                {
                    for (int row = start; row < totalRec; row++)
                    {
                        tmp.Add(source[row]);
                    }
                }
                else//满页
                {
                    for (int row = start; row < start + pageSize; row++)
                    {
                        tmp.Add(source[row]);
                    }
                }
                list.Add(tmp);
            }
            return list;
        }

/// <summary>
        /// 对DataTable进行分片
        /// </summary>
        /// <param name="source">要分片的DataTable</param>
        /// <param name="pageSize">分片的页容积</param>
        /// <returns></returns>
        public static List<DataTable> Segement(DataTable source, int pageSize)
        {
            List<DataTable> list = new List<DataTable>();
            if (source == null || source.Rows.Count == 0)
            {
                return list;
            }

int totalRec = source.Rows.Count;

int totalPage = totalRec % pageSize == 0 ? totalRec / pageSize : totalRec / pageSize + 1;
          
            for (int index = 0; index < totalPage; index++)
            {
                int start = index * pageSize;
                DataTable dt = new DataTable();

if (index == totalPage - 1)//最后一页,半页
                {
                    for (int row = start; row < totalRec; row++)
                    {
                        dt.ImportRow(source.Rows[row]);
                    }
                }
                else//满页
                {
                    for (int row = start; row < start + pageSize; row++)
                    {
                        dt.ImportRow(source.Rows[row]);
                    }
                }
                list.Add(dt);
            }
            return list;
        }

}

转载于:https://www.cnblogs.com/ysuhy/archive/2010/10/11/1847919.html

List和DataTable的Limit相关推荐

  1. JQuery Datatable用法

    原文出处:http://sgyyz.blog.51cto.com/5069360/1408251 目标: 使用jQuery Datatable构造数据列表,并且增加或者隐藏相应的列,已达到数据显示要求 ...

  2. 程序员接活利器,dataTable组件带你快速开发,摆脱CRUD

    本文摘要 ·对于10,000元以下的外包项目,通常CRUD业务占据50%以上.每个项目虽然业务不同,但是对数据库中每个表的操作都是一定的.在做了n个项目之后,我觉得程序员不能无脑进行CRUD操作,这样 ...

  3. jQuery Datatable 实用简单实例

    目标: 使用jQuery Datatable构造数据列表,并且增加或者隐藏相应的列,已达到数据显示要求.同时,jQuery Datatable强大的功能支持:排序,分页,搜索等. Query Data ...

  4. Jquery DataTable基本使用

    1,首先需要引用下面两个文件 <link rel="stylesheet" href="https://cdn.datatables.net/1.10.16/css ...

  5. DataTable的Ajax使用

    DataTable Datatables是一款jquery表格插件.它是一个高度灵活的工具,可以将任何HTML表格添加高级的交互功能. 官网: https://datatables.net/ 中文网: ...

  6. jquery datatable的详细用法

    1,首先需要引用下面两个文件 <link rel="stylesheet" href="https://cdn.datatables.net/1.10.16/css ...

  7. DataTable 服务端模式 进行分页 排序搜索

    使用场景 进行大数据处理 提高用户体验 前端HTML部分 <link rel="shortcut icon" href="favicon.ico"> ...

  8. webix .datatable 表格分页

    grid表格返回参数大都是 以下这种格式(参数名可能不一样) {data:[{...},{...} ...], count:39} webix的参数格式为 { data:[{...},{...},{. ...

  9. datatable java实现分页_jQuery Datatable - 使用Php的服务器端处理数据分页

    我有jquery datatable分页的问题(服务器端处理) . 例如,我在数据库中有 24 条记录 . 计数正确显示,总分页也正确显示 . 当我点击 Next or 2nd page 时,它会根据 ...

最新文章

  1. [BZOJ 1588][HNOI 2002] 营业额统计
  2. 前端学习(1797):前端调试之css伪元素
  3. 文档预览 OfficeWebViewer:在浏览器中查看Office文档
  4. activiti 流程文件存哪里_JAVA-工作流引擎-activiti-Tasks介绍
  5. 学习笔记 - 002
  6. java textbox换行符_TextBox中的空格与换行问题
  7. java 正则表达式 img src_腰酸推荐Java-Jsoup爬取妹子图
  8. 20200411使用Potplayer对视频进行逐帧截图
  9. 编织机上下料西门子S71200PLC和KTP700触摸屏程序博途V14
  10. JQuery-表单验证
  11. Vue3.0 + pdf.js 实现pdf预览
  12. 【历史上的今天】10 月 27 日:世界上第一次网络瘫痪;网络广告的诞生;短视频鼻祖 Vine 关闭
  13. Sentinel-【控制台介绍及规则配置】
  14. AC的集中和本地转发
  15. Hybrid App(混合模式移动应用)
  16. 抖音修改签名服务器,抖音怎么修改个性签名 抖音经典热门个签句子大全
  17. DOS或命令行下查看进程,结束进程命令
  18. JavaScript 设计模式学习第五篇-继承与原型链
  19. 计算圆周率π和显示进度条
  20. Ubuntu16.04开启多个工作桌面,以及不同桌面之间的切换,Ubuntu进行同一桌面分屏,Terminal分屏

热门文章

  1. 金士顿固态硬盘计算机如何识别,金士顿SV300 SF2281固态硬盘SSD不认盘开卡修复教程...
  2. hyperion高光谱参数_[ENVI] 珠海一号高光谱数据处理
  3. html5步骤条,自定义步骤条 , 纯原生html + css
  4. 易语言复制C指针,易语言教程API模块制作cmd复制文件
  5. 与华为交换机用access_学校机房项目交换机的配置,理解这篇,交换机配置不再难...
  6. c语言编程基础课件,第7章_C语言图形编程基础课件
  7. 用户体验五要素_Kwai竞品分析用户体验五要素
  8. python log函数_Python log10() 函数
  9. Nexys4DDR+OV7670实现图像灰度显示系统
  10. java 死锁种类_用java写一个死锁