C#中Skip和Take的用法

 //Skip()和Take()方法都是IEnumerable<T> 接口的扩展方法,包括C#中的所有Collections类,如ArrayList,Queue,Stack等等,还有数组和字符串都可以调用这两个方法。
            var testList = new List<int>();
            testList.Add(1);
            testList.Add(2);
            testList.Add(3);
            testList.Add(4);
            var a = testList.Skip(0).ToList();//返回值就是 1,2,3,4;
            var b = testList.Skip(2).ToList();//返回值就是 3,4;
            var c = testList.Take(0).ToList();//count是0
            var d = testList.Take(2).ToList();//返回值1,2
            var e = testList.Take(4).ToList();//返回值就是 1,2,3,4;
             //搭配使用,一般用来分页
            var result = testList.Skip(2).Take(2).ToList(); //返回值 3,4

 //page 页数 PageSize条数

result.Skip((page - 1) *PageSize).Take(PageSize);

计算分页总页数:

totalRecord:总记录数(result.Count)
pageSize:每页多少条记录
totalPageNum:总页数

int totalPageNum = (totalRecord  +  pageSize  - 1) / pageSize;

原文地址:https://www.cnblogs.com/macT/p/11996355.html