Linq C# - 获取集合中的上一个元素

时间:2014-12-21 23:11:51

标签: c# linq element

任何人都可以建议查询以获取LINQ中集合中的上一条记录。

我已经写了下面的内容以获得下一页,它运作良好。但是我无法获得列表的前一个元素。

menu = _applicationContext.RightMenu.FirstOrDefault(x => x.PageOrder > currentPageNo);

使用

menu = _applicationContext.RightMenu.FirstOrDefault(x => x.PageOrder < currentPageNo);

它只显示集合中的第一个元素,而不是前一个元素。

3 个答案:

答案 0 :(得分:3)

假设RightMenu处于升序PageOrder,您希望最后一项小于currentPage。您需要将.FirstOrDefault()更改为.LastOrDefault()第二行。

答案 1 :(得分:1)

这样做:

menu = _applicationContext.RightMenu.LastOrDefault(x => x.PageOrder < currentPageNo);

答案 2 :(得分:0)

这是获取前一个元素的另一种方法:

menu = _applicationContext.RightMenu.FirstOrDefault(x => x.PageOrder == (currentPageNo-1));