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;
それとも、1 回反復し、2 回目data
の結果をwhere
合計しますか?