是数据库/linq查询中的过滤和排序交换操作



对于任意的对象集合,下列两个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);

Enumerable<T>.OrderBy()被指定为稳定排序,而Queryable<T>.OrderBy()不是。

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

最新更新