我对IQueryable集合进行了一些排序并获取了一个项目。我的页面上还有一些<a>
链接,我想点击这些链接以收集到该集合的上一个和下一个项目。
由于ID是 NOT 顺序,我不能只做简单的算术来达到它们。
如果给出记录的位置,如何从IQueryable获取上一个和下一个项目?
答案 0 :(得分:4)
使用Take()
和Skip()
来实现您的分页系统。您不需要ID是顺序的,您只需按查询返回的顺序返回对象。
var itemsPerPage = 10;
var pageNumber = 2; // Say it starts from 1
var values = query.Skip((pageNumber - 1) * itemsPerPage).Take(itemsPerPage);
答案 1 :(得分:0)
您可以使用LinkedList。
LinkedList Nodes支持调用他们的上一个和下一个兄弟节点。 LinkedList的构造函数采用IEnumerable,因此您应该能够轻松实现它。