C# 从2个匹配词典中创建新词典 labelMap=newdictionary(); branchLineMap=新字典();

C# 从2个匹配词典中创建新词典 labelMap=newdictionary(); branchLineMap=新字典();,c#,dictionary,hashtable,C#,Dictionary,Hashtable,如果第一个字典的一个键与另一个字典的另一个键匹配,那么我需要创建一个新字典,branchlineMap的值将成为键,LabelMap的值将成为值。如何在遍历整个字典时执行此操作?使用和方法,您可以这样做: labelMap = new Dictionary<string, int>(); branchLineMap = new Dictionary<string, int>(); 使用和方法,您可以这样做: labelMap = new Dictionary<

如果第一个字典的一个键与另一个字典的另一个键匹配,那么我需要创建一个新字典,branchlineMap的值将成为键,LabelMap的值将成为值。如何在遍历整个字典时执行此操作?

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

 labelMap = new Dictionary<string, int>();
 branchLineMap = new Dictionary<string, int>();
使用和方法,您可以这样做:

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

您可以使用LINQ将两者结合起来

查询语法:

var newDictionary = labelMap
                   .Where(x => branchLineMap.ContainsKey(x.Key))
                   .ToDictionary(x => branchLineMap[x.Key], x => x.Value);
同样,使用方法语法:

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);

您可以使用LINQ将两者结合起来

查询语法:

var newDictionary = labelMap
                   .Where(x => branchLineMap.ContainsKey(x.Key))
                   .ToDictionary(x => branchLineMap[x.Key], x => x.Value);
同样,使用方法语法:

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);

您似乎只是存储一个匹配的变量,而不是创建一个包含所有匹配项的新词典。您似乎只是存储一个匹配项的变量,而不是创建包含所有匹配项的新词典。