是否有可能使LINQ'的order操作保持iquerable的原始顺序?
本文关键字:iquerable 原始 顺序 操作 order LINQ 是否 有可能 | 更新日期: 2023-09-27 18:11:43
当尝试基于IQueryable
页面搜索结果集时,我得到一个错误,说明我必须在使用Skip
之前调用OrderBy
。
在大多数情况下,这很好,因为我可以按Id对结果排序。然而,我有一个边缘情况,在我通过我的实体类调用函数导入。此函数导入在SQL中使用FREETEXT
搜索并返回排序结果集。
OrderBy
,我将不再拥有一组排序的搜索结果。
所以,听起来很傻,有没有一种方法可以让愚弄 LINQ,让它认为我调用了一个OrderBy
操作,而这个操作只是维持了原来的顺序?
你可以这样做:
var page = searchResultSet.OrderBy(x => 0).Skip(40).Take(20);
这将保持结果集的原始顺序,因为所有记录都具有相同的常数值0,因此在比较相等的值后对它们进行排序不会改变它们的顺序。
检查这个答案