Могут ли эти два запроса 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 } )));

Спасибо

Ответы на вопрос(2)

Ваш ответ на вопрос