编程语言
首页 > 编程语言> > c#-使用Linq反向分页

c#-使用Linq反向分页

作者:互联网

我有一种情况,我必须使用LINQ以相反的方式获取分页记录.假设我有15项按照发布的顺序排列:

1, 2, 3, 4, 5.......... 15

如果用户在我的方法中发送1作为currentPage,则页面大小为5.然后我应该能够返回11、12、13、14、15作为结果集,如果他发送2作为currentPage,那么我应该返回6、7、8、9、10,依此类推.如何设置我给Skip方法的值,以便它以这种方式给我记录?是的,我也按日期从小到大排序.

解决方法:

只是逻辑的一个简单示例:

var nums = new[] {1, 2, 3, ..., 15};

var lastFew = nums.Reverse().Take(5).Reverse().ToArray();

或者,作为列表:

var nums = new List<int> { 1, 2, 3, ..., 15};
nums.Reverse();
nums.RemoveRange(5); // removes from index 5 till end
nums.Reverse();

实际的实现可能会有所不同,具体取决于代码的设计方式等,但这应该可以帮助您入门.

此处使用的主要方法是:反向,采取以限制返回的数量和跳过以选择起始索引.如果使用“跳过”,则很可能完全避免使用“反向”.

标签:paging,linq,c
来源: https://codeday.me/bug/20191028/1953051.html