在 C# 中合并具有相似键但不同值的字典

2024-01-02

考虑以下字典:

Dictionary<string, double> dict1 = new Dictionary<string, double>()
Dictionary<string, double> dict2 = new Dictionary<string, double>()

两个字典具有完全相同的键,但值不同。我想通过以下方式合并两个字典:创建一个具有相同键的新字典dict1 and dict2,其中该值是由匹配值组成的数组dict1,以及匹配值dict2,对于每个键。

我可以轻松地在循环中做到这一点,但我希望有一种更有效的方法来做到这一点。

任何帮助,将不胜感激!谢谢你!


这假设它们确实具有相同的密钥:

var merged = dict1.ToDictionary(pair => pair.Key,
                                pair => new[] { pair.Value, dict2[pair.Key] });

或者创建一个Dictionary<string, Tuple<double, double>>

var merged = dict1.ToDictionary(pair => pair.Key,
                                pair => Tuple.Create(pair.Value, dict2[pair.Key]));

或者,如果您要在同一方法中使用匿名类型,则可以使用匿名类型来使其更清晰:

var merged = dict1.ToDictionary(pair => pair.Key,
                                pair => new { First = pair.Value,
                                              Second = dict2[pair.Key]) });

正如评论中所指出的,这些仍然在内部循环 - 它们不会更多高效的比自己编写循环更好,但读起来更好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 C# 中合并具有相似键但不同值的字典 的相关文章

随机推荐

  • 将 xtable 与 longtable 选项一起使用时重复标头

    在使用 longtable 选项生成 xtable 时 有没有办法重复顶行 设置标题 例如 如果我有 tableSb lt xtable df caption A Very Long Table label ALongTable print
  • 处理不是 Action 请求的 Multipart 请求?

    我一直在想是否可以处理不是操作请求的多部分请求 对我来说这似乎不可能是有原因的 只有 ActionRequest 实现 getFile 类方法 我不能 找到任何简单的方法来获取文件 出于除 Action 之外的请求 要求 如果我不使用 ht
  • 不在 UI 线程中触发 PropertyChanged 会产生哪些副作用?

    如果您实现 INotifyPropertyChanged 您可以在非 UI 线程中引发事件 我应该避免这种情况吗 为什么 Update 这是关于 wpf 应用程序中的绑定 不 你不应该避免这个 WPF 元帅PropertyChanged代表
  • 使用 XSL 封装 HTML 中的单词

    我需要在 HTML 文档中用标签 例如 span 包装每个单词 例如 div Text in a div div div Text in a div p Text inside a p p div 得到这样的结果 div span Text
  • 为了学习目的,Erlang 有哪些有趣的项目可以解决? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我最近发现了 Erlang 现在正在学习几个教程 到目前为止 我期待着将一些东西作为一个业余爱好项目来实际实施 我对另一个聊天服务器并不真正感兴
  • NetBeans 安装程序未正确找到 Java

    我正在尝试安装 NetBeans 全部 包 并且我很确定我已经安装了 Java SE 开发工具包 但是它没有正确定位它 它出现了错误 Java SE Development Kit JDK was not found on this com
  • 如何仅使用 javascript 将页面高度增加 X 像素

    假设一个 HTML 页面 html content outside of our control javascript block some more html content outside of our control 进一步假设我们能
  • Google 地方信息返回错误的城市

    我正在使用 google autocomplete Places API 构建一个应用程序 如果我对地址 Pongal New York NY United States 使用预测建议 我会在返回地点对象中得到以下项目 地区 曼哈顿 Adm
  • 如何将 numpy 数组转换为 mp3 文件

    我正在使用声卡库来记录我的麦克风输入 它记录在 NumPy 数组中 我想抓取该音频并将其保存为 mp3 文件 Code import soundcard as sc import numpy import threading speaker
  • 像 Exposé 中那样放置框

    有谁知道如何找到最适合特定区域的矩形 矩形可以放大到一定限度 但它们应该保持其比例 我基本上想重建 Mac OS 的 Expos Picture http switchtoamac com guides images expose all
  • 如何解决现有文件和符号链接之间的 npm install 冲突?

    我遇到了一个问题NPM https www npmjs com 它似乎正在检测具有相同名称的现有文件和符号链接之间的冲突 运行时我没有看到任何符号链接ls l从我的项目的根文件夹 我如何弄清楚 NPM 发生了什么并解决这个冲突 持续集成构建
  • 如何区分两棵树以确定父母的变化?

    我有一个树结构 需要重新排列 拖放 然后提交更改 捕捉变化的最佳方式是什么 据我所知 有两种方法 存储每个更改命令 提交更改列表 然后执行每个更改命令 序列化树 然后将新树与旧树进行比较以找出更改的内容 然后执行更改 1 似乎最容易实现 尽
  • 更新后 SQL Server 错误:提供给函数的令牌无效

    我正在使用我的机器 和 SSMS 一切正常 我重新启动后 Windows 10 应用了以下更新 Windows Malicious Software Removal Tool for Windows 8 8 1 10 and Windows
  • 在networkx中按权重对边缘进行着色

    我在这里只找到了与我想要的类似的东西 根据权重对网络边缘进行着色 https stackoverflow com questions 17632151 coloring networkx edges based on weight 但是我似
  • 在 PHP 中传递带有参数的回调

    我有一个 PHP 库函数 需要一个不带参数的回调 我知道我可以传递对象的方法array this my function name 但我怎样才能给参数my function name 我找到了一个解决方案 使用create function
  • gulp watch 立即终止

    我有一个非常小的 gulpfile 如下 注册了一个监视任务 var gulp require gulp var jshint require gulp jshint gulp task lint function gulp src app
  • AVAudioPlayer 和 AVAudioRecorder:未调用委托方法

    我的委托方法audioRecorderDidFinishRecording and audioPlayerDidFinishPlaying没有被调用 这些方法应该触发 stopanimation 方法 该方法在录制完成后停止动画 我已拨打电
  • 使用 UNREFERENCED_PARAMETER 宏

    我在 Visual Studio 上使用 W4 警告级别 并且正在编写 Windows 程序 int WINAPI WinMain HINSTANCE hInstance HINSTANCE hPrevInstance LPSTR lpCm
  • RESTful webservice +JSON+SQL 存储过程项目的问题

    我知道我确实想念一些东西 我的整个项目在某种程度上是各种 如何 的复制和粘贴 我的 C 知识充其量只是基础知识 我需要让它工作 因为我们的标准 Web 服务软件仅在发送时才是 RESTful 我的主要问题是 我偶然发现的所有解决方案实际上都
  • 在 C# 中合并具有相似键但不同值的字典

    考虑以下字典 Dictionary