a) 以下两个查询是否会产生相同的结果:
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)我假设这两个查询不能总是互换使用?例如,如果我们希望输出元素也包含 和 的值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 } )));
?
谢谢