您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在C#中合并字典

在C#中合并字典

这部分取决于您遇到重复时要发生的情况。例如,您可以执行以下操作:

var result = dictionaries.SelectMany(dict => dict)
                         .ToDictionary(pair => pair.Key, pair => pair.Value);

如果您有任何重复的密钥,那将会炸毁。

编辑:如果您使用ToLookup,那么您将获得一个查找,该查找每个键可以具有多个值。然后,您 可以 将其转换为字典:

var result = dictionaries.SelectMany(dict => dict)
                         .ToLookup(pair => pair.Key, pair => pair.Value)
                         .ToDictionary(group => group.Key, group => group.First());

这有点难看-而且效率低下-但就代码而言,这是最快的方法。(坦率地说,我还没有测试过。)

您当然可以编写自己的ToDictionary2扩展方法(使用一个更好的名称,但是我现在没有时间考虑)-这样做并不是很难,只需覆盖(或忽略)重复的键即可。(在我看来)重要的一点是使用SelectMany,并意识到字典支持在其键/值对上进行迭代。

c# 2022/1/1 18:17:26 有509人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶