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

如何按Key合并IGrouping中的元素并转换为IEnumerable<Point>列表?

解决IGrouping转合并后的Point序列列表问题

你手里的IGrouping<TKey, List<Point>>(TKey为分组Key的实际类型),每个分组下包含多个List<Point>实例,要把每个分组内的所有列表合并成单个IEnumerable<Point>,最终得到这些合并结果的列表,用LINQ就能轻松实现:

推荐实现(简洁高效)

var result = grouping.Select(g => g.SelectMany(points => points)).ToList();

代码说明

  • grouping替换成你的IGrouping<TKey, List<Point>>集合变量名
  • 外层Select遍历每个分组
  • 内层SelectMany会自动把当前分组里的所有List<Point>扁平化为一个连续的IEnumerable<Point>,等价于手动调用p1.Concat(p2)这类合并操作
  • 最后ToList()将结果转为List<IEnumerable<Point>>,完全匹配你想要的结构

备选写法(显式用Concat,性能稍差)

如果偏好显式合并的写法,也可以用Aggregate,但每次Concat都会生成新列表,性能不如SelectMany:

var result = grouping.Select(g => g.Aggregate((accumulated, nextList) => accumulated.Concat(nextList).ToList())).ToList();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 10:15:48