从 2 个匹配的字典中创建一个新字典
本文关键字:字典 新字典 一个 创建 | 更新日期: 2023-09-27 17:57:09
labelMap = new Dictionary<string, int>();
branchLineMap = new Dictionary<string, int>();
如果第一个字典的一个键与另一个字典的另一个键匹配,那么我需要创建一个新字典,其中 branchlineMap 的值成为键,LabelMap 的值成为值。如何在遍历整个字典时执行此操作?
使用 Where
和 ToDictionary
方法,您可以像这样操作:
var newDictionary = labelMap
.Where(x => branchLineMap.ContainsKey(x.Key))
.ToDictionary(x => branchLineMap[x.Key], x => x.Value);
您可以使用 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);