【发布时间】:2010-10-13 00:42:04
【问题描述】:
我可以使用 SelectMany 展平集合中子集合的结果:
// a list of Foos, a Foo contains a List of Bars
var source = new List<Foo>() { ... };
var q = source.SelectMany(foo => foo.Bar)
.Select(bar => bar.barId)
.ToList();
这给了我 Foo 列表中所有 Bar Id 的列表。当我尝试深入三层时,返回的结果不正确。
var q = source.SelectMany(foo => foo.Bar)
.SelectMany(bar => bar.Widget)
.Select(widget => widget.WidgetId)
.ToList();
我应该如何使用 SelectMany 来获取我的 Foos 列表中所有 Bars 中的所有小部件的列表?
编辑 我用错了上面的句子,但代码反映了目标。我正在寻找所有小部件 ID 的列表,而不是小部件。
“不正确”的结果并不是所有的小部件 ID 都被返回。
【问题讨论】:
-
对我来说看起来不错。 “返回的结果不正确”不是描述性错误消息,您会得到什么,您期望什么?