zoukankan      html  css  js  c++  java
  • Linq:使用Take和Skip实现分页

    Skip,Take:

    list = list.Skip(pageNum * pageSize).Take(pageSize).ToList();

    pageSize :表示一页多少条。

    pageNum:表示页数,但是正确的页数是pageNum + 1。因为pageNum = 0,是第一页。pageNum = 1的时候,是第二页。

    Skip :表示从第pageNum * pageSize + 1条数据开始,也就是说再这之前有pageNum * pageSize条数据。

    Take:表示显示多少条数据,也就是pageSize条。

    list = list.Skip(5 * 2).Take(2).ToList();

    pageNum * pageSize = 10,那么之前已经有10条数据。从第11条数据开始查询。查询2条。这就是第6页显示的内容。

    C#控制台程序代码:

    复制代码
      class Program   
      {   
          static int Main()   
          {   
              //每页条数   
              const int pageSize = 2;   
              //页码 0也就是第一条 
              int pageNum = 0;   
       
              //源数据   
              string[] names = { "刘一","陈二","张三","李四","王五","赵六","孙七","周八","吴九" };
           
              while (pageNum * pageSize < names.Length)   
              {   
                  //分页   
                  var query = names.Skip(pageNum * pageSize).Take(pageSize);   
                  Console.WriteLine("输出第{0}页记录", pageNum + 1);   
                  //输出每页内容   
                  foreach (var q in query)   
                  {   
                      Console.WriteLine(q);   
                  }   
                  pageNum++;   
              }   
       
              Console.ReadKey();   
       
              return 0;   
          }   
      }  
    复制代码

    结果:

  • 相关阅读:
    如何在vim中同时编辑多个文件
    Windows操作系统架构
    驱动中PAGED_CODE的作用
    Process Hacker源码中的用户态hook的做法
    IO Processing
    Device Drivers
    Windows IO System
    how to catch error in make error message
    分析/proc/[pid]/maps中的各个内存区域的大小
    boost::shared_ptr
  • 原文地址:https://www.cnblogs.com/yuesebote/p/8364946.html
Copyright © 2011-2022 走看看