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

如何在C# LINQ中合并多个列表?(禁用Lambda表达式)

用LINQ查询表达式合并多个集合为单一列表

嗨,别担心,这事儿其实挺容易搞定的!你要实现的就是把每个thing通过Function(thing)生成的小列表,全部合并成一个长列表——LINQ里专门有个机制干这个,用查询表达式写的话,只需要嵌套一个from就行,完全不用Lambda表达式~

你原来的代码可以改成这样:

var results = from thing in AnArrayOfThings
              from item in Function(thing)
              select item;

咱们来拆解一下这个逻辑:

  • 首先遍历AnArrayOfThings里的每一个thing
  • 对每个thing,调用Function(thing)拿到对应的小列表
  • 接着把每个小列表里的每一个item都“拉出来”,最终所有item就会自动合并成一个单一的集合,这和你写的foreach循环里不断合并列表的逻辑完全等价。

如果之后你想尝试Lambda写法(其实也很简单),对应的代码是这样的:

var results = AnArrayOfThings.SelectMany(thing => Function(thing));

不过既然你现在更习惯查询表达式,前面那个嵌套from的写法就完全够用啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:04:49