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)));//結果為空字符串
-
注意在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條。