使用LINQ展平嵌套的IEnumerable
在LINQ中,您可能会遇到嵌套IEnumerable的情况,需要将其“展平”以获得单个合并的IEnumerable。当内部IEnumerable包含与外部IEnumerable相同类型的元素时,此展平过程变得必要。
案例研究:
考虑提供的示例:
<code>IEnumerable<List<int>> iList = from number in (from no in Method() select no) select number;</code>
在此示例中,iList表示一个嵌套的IEnumerable,其中每个元素本身都是一个List
解决方案:SelectMany()
LINQ提供SelectMany()方法,该方法专门用于展平嵌套的IEnumerable集合。它遍历外部IEnumerable并将每个内部集合元素投影到新的IEnumerable中。
要获得所需的结果,您可以按如下方式使用SelectMany():
<code>var result = iList.SelectMany(i => i);</code>
在此代码中,SelectMany()方法获取iList中包含的每个列表(由变量i表示),并将该列表的元素连接到名为result的新展平IEnumerable中。
示例:
通过此展平,原始嵌套数组[1,2,3,4]和[5,6,7]将按预期组合成单个数组[1,2,3,4,5,6,7]。
以上是如何在 LINQ 中展平嵌套 IEnumerable?的详细内容。更多信息请关注PHP中文网其他相关文章!