比较字典和使用C#中的值创建新字典

时间:2014-08-05 11:04:05

标签: c# dictionary generic-collections

我有两本词典Dic A& Dic B. Dic A& Dic B有相同的键。我想将两个词典中的值移动到一个新词典中(来自Dic A的值是新词典中的键)。我无法找到合并或交叉两个词典的方法来获得一个新的词典。获得所需输出的正确方法是什么

Dic A
=======

A1   Val 1
A2   Val 2
A3   Val 3

Dic B
========

A1  Cat 1
A2  Cat 2 
A3  Cat 3

期望的结果

Dic C
=======

Val 1  Cat 1 
Val 2  Cat 2 
Val 3  Cat 3

1 个答案:

答案 0 :(得分:4)

这听起来像是两个原始的连接,然后是转换:

var merged = dicA.Join(dicB, pair => pair.Key, pair => pair.Key,
                       (a, b) => new { Key = a.Value, Value = b.Value })
                 .ToDictionary(pair => pair.Key, pair => pair.Value);