Linq:使用Take和Skip實現分頁

Skip,Take:html

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

pageSize :表示一頁多少條。post

pageNum:表示頁數,可是正確的頁數是pageNum + 1。由於pageNum = 0,是第一頁。pageNum = 1的時候,是第二頁。url

Skip :表示從第pageNum * pageSize + 1條數據開始,也就是說再這以前有pageNum * pageSize條數據。spa

Take:表示顯示多少條數據,也就是pageSize條。code

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

pageNum * pageSize = 10,那麼以前已經有10條數據。從第11條數據開始查詢。查詢2條。這就是第6頁顯示的內容。htm

 

C#控制檯程序代碼:blog

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

結果:ip

 


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

相關文章
相關標籤/搜索