Могут ли эти два запроса LINQ быть взаимозаменяемыми?
а) Следующие два запроса дадут одинаковые результаты:
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)));
б) я предполагаю, что два запроса могутт всегда использовать взаимозаменяемо? Например, если мы хотим, чтобы выходные элементы также содержали значения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 } )));
Спасибо