对于任意对象集合,以下两个LINQ表达式总是会给出相同的结果(假设LINQ提供程序是相同的):
var result = list.OrderBy(x => x.FirstName).Where(x => x.Age > 18);
var result = list.Where(x => x.Age > 18).OrderBy(x => x.FirstName);
答案 0 :(得分:1)
虽然Enumerable<T>.OrderBy()
指定为stable sort,但Queryable<T>.OrderBy()
不是。{/ p>
换句话说,不,因为排序不能保证稳定,所以不保证两个查询为所有提供者提供相同的结果。至少,结果可能会以不同的顺序排序。