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

結果:

 


相關文章:C# Linq處理list數據

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM