Essas duas consultas LINQ podem ser usadas de forma intercambiável?
a) As seguintes duas consultas produziriam os mesmos resultados:
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) Eu assumo que as duas perguntas nem sempre podem ser usadas de forma intercambiável? Por exemplo, se quiséssemos que os elementos de saída também contivessem valores dec_1
ec_2
, então só conseguimos isso comquery2
mas não comquery1
:
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 } )));
?
Obrigado