You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用LINQ将嵌套的list2列表合并为单个列表?

当然有更简洁的LINQ写法!

你之前用的Select只会把每个外层元素的list属性单独提取出来,得到的是一个IEnumerable<IList<list2>>(一堆子列表的集合),而不是把所有元素平铺成一个单一集合。这时候你需要用**SelectMany**——LINQ里专门用来扁平化嵌套集合的方法。

直接替换你的嵌套循环的写法如下:

var listWithAll = list.SelectMany(item => item.list).ToList();

简单解释下:

  • SelectMany会遍历外层集合的每一个item,然后取出每个item的list子集合;
  • 它会自动把所有子集合里的list2元素合并成一个连续的IEnumerable<list2>序列;
  • 最后调用ToList()就转换成你需要的List<list2>了,效果和你原来的嵌套循环完全一样。

如果之后需要对元素做过滤,比如只保留something不为空的list2对象,也可以直接追加Where条件:

var listWithAll = list.SelectMany(item => item.list)
                      .Where(item2 => !string.IsNullOrEmpty(item2.something))
                      .ToList();

内容的提问来源于stack exchange,提问作者Joakim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:45:01