1. 程式人生 > >Linq:使用Take和Skip實現分頁

Linq:使用Take和Skip實現分頁

list() key program console post 內容 mage while itl

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;   
      }   
  }  
技術分享圖片

結果:

技術分享圖片

Linq:使用Take和Skip實現分頁