首页 > 后端开发 > C++ > 如何在 LINQ 中展平嵌套 IEnumerable?

如何在 LINQ 中展平嵌套 IEnumerable?

Susan Sarandon
发布: 2025-01-26 15:51:09
原创
938 人浏览过

How Can I Flatten a Nested IEnumerable in LINQ?

使用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。目标是将所有这些嵌套列表合并到单个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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板