在C#中使用不同的数据类型加入两个字典

时间:2015-02-25 23:56:15

标签: c# dictionary

我有两个字典,即

Dictionary<string,string> DictA=new Dictionary<string,string>();
Dictionary<string,int> DictB=new Dictionary<string,int>();
DictA.Add("A","A1");
DictA.Add("B","B1");
DictA.Add("C","C1");

DictB.Add("A",10);
DictB.Add("B",20);
DictB.Add("K",30);

现在我需要像这样形成第三个字典。

<10,A1>
<20,B1>

我非常确定这对于Dictionaries或Lambda Expressions的操作是可行的,但不确定如何实现这一点。

2 个答案:

答案 0 :(得分:3)

DictA.Join(DictB, 
           a => a.Key,
           b => b.Key,
           (a,b) => new KeyValuePair<int,string>(b.Value,a.Key))
    .ToDictionary(x => x.Key, x => x.Value);

答案 1 :(得分:2)

很简单:

var query =
    DictA
        .Where(a => DictB.ContainsKey(a.Key))
        .ToDictionary(a => DictB[a.Key], a => a.Value);

我得到了这个结果:

result