从2个匹配的字典中创建一个新的字典

时间:2014-04-08 00:41:41

标签: c# dictionary hashtable

 labelMap = new Dictionary<string, int>();
 branchLineMap = new Dictionary<string, int>();

如果第一个字典的一个键与另一个字典的另一个键匹配,那么我需要创建一个新的字典,其中branchlineMap的值将成为键,LabelMap的值将成为该值。如何在迭代整个字典时这样做?

2 个答案:

答案 0 :(得分:3)

使用WhereToDictionary方法,您可以这样做:

var newDictionary = labelMap
                   .Where(x => branchLineMap.ContainsKey(x.Key))
                   .ToDictionary(x => branchLineMap[x.Key], x => x.Value);

答案 1 :(得分:1)

你可以使用LINQ加入这两个。

查询语法:

var newDict = (from b in branchLineMap
               join l in labelMap on b.Key equals l.Key
               select new { b = b.Value, l = l.Value })
              .ToDictionary(x => x.b, x => x.l);

同样的事情,使用方法语法:

var newDict = branchLineMap.Join(labelMap, b => b.Key, l => l.Key,
                                 (b, l) => new { b = b.Value, l = l.Value })
                           .ToDictionary(x => x.b, x => x.l);