我有两个字典,即
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的操作是可行的,但不确定如何实现这一点。
答案 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);
我得到了这个结果: