a) 次の 2 つのクエリは同じ結果を生成しますか?
var query1 = collection_1
.SelectMany(c_1 => c_1.collection_2)
.SelectMany(c_2 => c_2.collection_3)
.Select(c_3 => c_3);
var query2 = collection_1
.SelectMany(c_1 => c_1.collection_2
.SelectMany(c_2 => c_2.collection_3.Select(c_3 => c_3)));
b) 2 つのクエリを常に同じ意味で使用できるとは限らないと思いますか? たとえば、出力要素に と の値も含めたい場合は、c_1
でc_2
のみ実現できますがquery2
、 では実現できませんquery1
。
var query2 = collection_1
.SelectMany(c_1 => c_1.collection_2
.SelectMany(c_2 => c_2.collection_3.Select(c_3 => new { c_1, c_2, c_3 } )));
?
ありがとうございました