<><>>> 标的答案很少准确。
正如“Philippe”所说,首先将转化为:
objectList.Where(o => o.value1 < 100).Where(o=> o.value2 > 10)
而第二项则将翻译为:
objectList.Where(o => o.value1 < 100 && o.value2 > 10)
电话:。
如果你检查<代码>Linq s 源代码,请参看:
class WhereEnumerableIterator<TSource> : Iterator<TSource>
{
public override IEnumerable<TSource> Where(Func<TSource, bool> predicate)
{
return new WhereEnumerableIterator<TSource>(source,
CombinePredicates(this.predicate, predicate));
}
}
is do is Integrating the twoterras with &&
双方:
static Func<TSource, bool> CombinePredicates<TSource>(Func<TSource, bool> predicate1,
Func<TSource, bool> predicate2)
{
return x => predicate1(x) && predicate2(x);
}
So objectList.Where(X) (Y)
等于objectList。 (X &&Y)
,但查询时间(Which是极短的)和援引两个前提除外。
底线是it 不是过滤或重复收集两次,但一次是复合时间。