Linq:使用Take和Skip实现分页

Skip,Take:

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

pageSize :表示一页多少条。

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

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

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

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

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

参考代码:

 1 class Program   
 2   {   
 3       static int Main()   
 4       {   
 5           //每页条数   
 6           const int pageSize = 2;   
 7           //页码 0也就是第一条 
 8           int pageNum = 0;   
 9    
10           //源数据   
11           string[] names = { "刘一","陈二","张三","李四","王五","赵六","孙七","周八","吴九" };
12        
13           while (pageNum * pageSize < names.Length)   
14           {   
15               //分页   
16               var query = names.Skip(pageNum * pageSize).Take(pageSize);   
17               Console.WriteLine("输出第{0}页记录", pageNum + 1);   
18               //输出每页内容   
19               foreach (var q in query)   
20               {   
21                   Console.WriteLine(q);   
22               }   
23               pageNum++;   
24           }   
25    
26           Console.ReadKey();   
27    
28           return 0;   
29       }   
30   }

原文链接:

https://www.cnblogs.com/cang12138/p/5707841.html

posted @ 2022-07-12 14:00  枫亦  阅读(9)  评论(0)    收藏  举报