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

C#遍历List<IDictionary<string,object>>实现无显式ToDictionary的动态合并方案

C# 多字典动态合并迭代实现

你需要的无显式ToDictionary的动态可迭代对象可以通过GroupBy加投影直接实现,属于延迟计算模式,只有遍历触发时才会执行合并逻辑,支持任意数量的输入字典:

var iterator = my_datasets
    .SelectMany(dict => dict)
    .GroupBy(pair => pair.Key)
    .Select(g => (Key: g.Key, Values: g.Select(p => p.Value).ToList()));
  • 无显式全量合并字典构造:全程没有调用ToDictionary生成完整的合并字典对象,避免了提前占用大量内存存储中间结果,适合大体积数据集处理场景
  • 支持N个输入字典:无需适配输入字典的数量,兼容任意长度的List<IDictionary<string,object>>输入
  • 完全匹配你需要的遍历写法:
foreach ((string key, List<object> values) in iterator)
{
    // 直接执行业务逻辑,例如基于values.Distinct()的处理
}

如果需要更极致的延迟效果,不需要提前将同Key的值转为List,可以去掉ToList()调用,进一步降低内存开销:

// 极致延迟版本,无任何中间集合生成
var iterator = my_datasets
    .SelectMany(dict => dict)
    .GroupBy(pair => pair.Key)
    .Select(g => (Key: g.Key, Values: g.Select(p => p.Value)));

// 对应遍历写法
foreach ((string key, IEnumerable<object> values) in iterator)
{
    // 执行业务逻辑
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:09:02