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