我们如何使用查询表达式表达以下代码:
var result = collection1
.Select(p1 => p1. collection2
.Select(p2 => p2.collection3
.Select(...)));
谢谢
答案 0 :(得分:3)
看起来就像你想要表达的那样真的是SelectMany
,你有一个集合,它有一个集合,可能有一个集合,而这一点继续为 n 级别。
在查询表达式语法中,那将是
var result = from p1 in collection1
from p2 in p1.collection2
from p3 in p2.collection3
... // continues to n
select pn;
答案 1 :(得分:3)
你可以使用:
var result = from p1 in collection1
select p1.collection2 into p2
select p2.collection3 into p3
select p3....;
但是,我怀疑原来的Select
来电更有可能是SelectMany
,在这种情况下你会得到:
var result = from p1 in collection1
from p2 in p1.collection2
from p3 in p2.collection3
select p3....;
这实际上取决于你想要做什么。