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;   
          }   
      }  

    结果:

  • 相关阅读:
    HDU 4334
    HDU 1280
    HDU 1060
    HDU 4033
    大三角形分成4个面积相等的小三角形
    HDU 1087
    HDU 4313
    Sleep(0)及其使用场景
    Decorator(装饰、油漆工)对象结构型模式
    Debug Assertion Failed!
  • 原文地址:https://www.cnblogs.com/DreamRecorder/p/9099113.html
Copyright © 2011-2022 走看看