是在database / linq查询中过滤和排序交换操作吗?

时间:2013-06-01 13:42:54

标签: linq sorting filter

对于任意对象集合,以下两个LINQ表达式总是会给出相同的结果(假设LINQ提供程序是相同的):

  1. var result = list.OrderBy(x => x.FirstName).Where(x => x.Age > 18);

  2. var result = list.Where(x => x.Age > 18).OrderBy(x => x.FirstName);

1 个答案:

答案 0 :(得分:1)

虽然Enumerable<T>.OrderBy()指定为stable sort,但Queryable<T>.OrderBy()不是。{/ p>

换句话说,不,因为排序不能保证稳定,所以不保证两个查询为所有提供者提供相同的结果。至少,结果可能会以不同的顺序排序。