链接 LINQ 语句会导致多次迭代吗?
例如,假设我想使用 where 子句过滤我的数据,然后在匹配项上进行求和:
int total = data.Where(item => item.Alpha == 1 && item.Beta == 2)
.Sum(item => item.Qty);
这是否会导致数据的单一交互,这样它就等同于这个?
int total = 0;
foreach (var item in data)
if (item.Alpha == 1 && item.Beta == 2)
total += 1;
或者,它是否迭代data
一次,where
第二次的结果来求和?