【发布时间】:2017-05-23 16:13:46
【问题描述】:
首先,我想提一下,我几天前才开始学习C#,所以我对它的了解有限。
我正在将具有相同类型键值对的多个字典合并为一个字典。
以下是我的方法,它可以工作并且还可以处理重复项
var result = dict1.Concat(dict2).GroupBy(d => d.Key)
.ToDictionary(d => d.Key, d => d.First().Value);
result = result.Concat(dict3).GroupBy(d => d.Key)
.ToDictionary(d => d.Key, d => d.First().Value);
result = result.Concat(dict4).GroupBy(d => d.Key)
.ToDictionary(d => d.Key, d => d.First().Value);
result = result.Concat(dict5).GroupBy(d => d.Key)
.ToDictionary(d => d.Key, d => d.First().Value);
我想知道是否有一种有效的方法来合并具有相同数据类型的键值对的多个字典。
【问题讨论】:
-
你控制初始化吗?
-
这看起来效率不高。此外,您希望如何处理 values 的覆盖似乎也没有明确的实现。我们是否假设
dict5优先于dict4,后者优先于dict3(等等)...?如果您可以帮助澄清,我们可以建议一些实现。 -
@Karolis 是的,我有 3 个不同的字典,我将它们合并到我的一种方法中以执行任务
-
@Tango 您是否可以简单地将所有条目添加到同一个字典中。您选择 5 个不同的词典有什么特别的原因吗?
-
@Karolis 我有 5 种不同的方法。每个方法都包含一个字典。我有一个主要方法可以处理来自每种方法的数据。我正在合并所有字典,以便我可以使用它来处理集体数据。
标签: c# dictionary