我有一个场景,我必须使用 LINQ 以相反的方式获取分页记录。让我们假设我有 15 个项目,顺序是它们发布的顺序:
1, 2, 3, 4, 5.......... 15
页面大小为 5,如果用户在我的方法中发送 1 作为 currentPage
。然后我应该能够返回 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();
实际的实现可能会因代码的设计方式等因素而有所不同,但这应该可以帮助您入门。
这里使用的关键方法是:Reverse
,Take
限制返回的数量,Skip
选择起始索引。如果您使用 Skip
,则很可能完全避免使用 Reverse
。
关于c# - 使用 Linq 反向分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29329747/