-4

1) 子查询是查询中的查询,因此必须以 FROM 子句开头并以 SELECT 或 GROUP BY 子句结尾。但我很困惑为什么我们不将那些只有 FROM 子句的嵌套语句也视为子查询(因此它们不以 SELECT 或 GROUP BY 结尾)。

的行为from c_2 in collection_2与子查询的行为非常相似,因为它枚举了collection_2每个c_1元素的整体。由于它们的行为非常相似,为什么不将诸如子查询之类的语句from c_2 in collection_2视为子查询(您可以争辩说子查询返回结果,但也可以说相同的论点from c_2 in collection_2,因为它确实被转换为对 的调用SelectMany)?

    var query = from c_1  in collection_1
                from c_2  in collection_2 
                select ...

谢谢你

4

1 回答 1

1

但同样的论点也可以从 collection_2 中的 c_2 说起,因为它确实被转换为对 SelectMany 的调用

并不真地。那个电话不会被转换成SelectMany. 事实上,有两个from子句组合在一起(只有一个select)导致它被转换为SelectMany调用,所以在这种情况下整个事情都是一个查询。如果每个都from与一个匹配,select那么它将是一个子查询。

于 2012-10-23T18:06:54.300 回答