labelMap = new Dictionary<string, int>();
branchLineMap = new Dictionary<string, int>();
如果第一个字典的一个键与另一个字典的另一个键匹配,那么我需要创建一个新的字典,其中branchlineMap的值将成为键,LabelMap的值将成为该值。如何在迭代整个字典时这样做?
答案 0 :(得分:3)
使用Where
和ToDictionary
方法,您可以这样做:
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);