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

如何使用LINQ单行实现通过中间映射字典聚合值生成新字典

可以实现,单行LINQ写法如下:

var result = values.GroupBy(kv => map[kv.Key], kv => kv.Value).ToDictionary(g => g.Key, g => g.Sum());

逻辑说明

  • 遍历values字典的所有键值对,以map中对应原始键的映射值作为分组依据
  • 分组时仅保留每个键值对的数值作为分组内的元素
  • 最终将分组结果转换为目标字典,键为分组的映射值,值为对应分组所有数值的总和

如果存在values的键不在map中的场景,可以提前加过滤逻辑避免抛出异常:

var result = values.Where(kv => map.ContainsKey(kv.Key))
                   .GroupBy(kv => map[kv.Key], kv => kv.Value)
                   .ToDictionary(g => g.Key, g => g.Sum());

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:27:04