C# List中的Skip()和Take()


Skip()和Take()方法都是IEnumerable<T> 接口的擴展方法,包括C#中的所有Collections類,如ArrayList,Queue,Stack等等,還有數組和字符串都可以調用這兩個方法。

int[] test = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
test.Skip(i)表示從下標i開始截取,返回類型為IEnumerable<T>,返回的集合中包括test[i]
Console.WriteLine(string.Concat(test.Skip(0)));;//結果為{0,1,2,3,4,5,6,7,8,9,}
test.Take(i)表示到下標i結束截取,返回類型為IEnumerable<T>,返回的集合中不包括test[i]
Console.WriteLine(string.Concat(test.Take(0)));//結果為空字符串

    1. 注意在Skip和Take連用時,后者的輸入是前者的輸出,而不是原輸入
      2.  Console.WriteLine( string.Concat(test.Skip(2).Take(4)));//注意!結果為{2,3,4,5}
       
      var  testList =  new  List< int >();
      //比如  testList里面是 1,2,3,4,5,6,7,8,9,10
      var  result = testList.Skip(5);   //返回值就是 6,7,8,9,10;
      var  result = testList.Take(5);   //返回值就是 1,2,3,4,5
      //搭配使用,一般用來分頁
      var  result = list.Skip(2).Take(2);  //返回值 3,4
       

      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條。

       

       


免責聲明!

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



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