C# 如果DictA键中存在DictB值,如何比较两个字典的值和增量计数?

C# 如果DictA键中存在DictB值,如何比较两个字典的值和增量计数?,c#,asp.net,dictionary,compare,match,C#,Asp.net,Dictionary,Compare,Match,我有两个字典的格言和格言,例如: Dictionary<int, string> DictA = new Dictionary<int, string>(); DicA.add(1,"Mango"); DicA.add(2,"Grapes"); DicA.add(3,"Orange"); Dictionary<int, string> DictB = new Dictionary<int, string>(); DicB.add(1,"Mango

我有两个字典的格言和格言,例如:

Dictionary<int, string> DictA = new Dictionary<int, string>();
DicA.add(1,"Mango");
DicA.add(2,"Grapes");
DicA.add(3,"Orange");

Dictionary<int, string> DictB = new Dictionary<int, string>();
DicB.add(1,"Mango");
DicB.add(2,"Pineapple");
如何比较这两个字典DictA key、value与DictB key、value的值,如果找到匹配项,则递增计数器变量

注:与DicB相比,DicA可能包含许多行 DicA有3行,DicB有2行。如果DicA key的值匹配类似/等于DicB key,则val将计数器变量增加1

有什么建议吗。。!谢谢你的帮助

使用以下代码:

int matches = DictA.Keys.Where(k => DictB.ContainsKey(k) && DictB[k] == DictA[k]).Count();
您可以使用:

Dictionary<int, string> DicA = new Dictionary<int, string>();
DicA.Add(1,"Mango");
DicA.Add(2,"Grapes");
DicA.Add(3,"Orange");

Dictionary<int, string> DicB = new Dictionary<int, string>();
DicB.Add(1,"Mango");
DicB.Add(2,"Pineapple");

int counter = 0;

foreach (var pair in DicA)
{
     string value;

     if (DicB.TryGetValue(pair.Key, out value))
     {
          if (value == pair.Value)
          {
                counter++;
          }
     }
}

找到匹配意味着什么?相同的键映射到相同的值?DIctA的值与DICTB的值匹配计数器变量在哪里?有关不完整的信息,请参阅Sorry@Jon…nw已编辑。。。!请回复。。。!它对我来说编译得很好,我猜你只是剪切并粘贴了它,而没有检查变量名。。。但是是的@SamLeach,值应该是一个字符串。只是我想告诉你们,它给出了一个错误,请不要误解。。!它会抛出什么特定错误?我在我的机器上运行了这段代码,计数器的值按预期返回1。您已经编辑了代码。我们以前的代码是:foreach var pair in DictA{int value;if DictB.TryGetValuepair.Key,out value{if value==pair.value{counter++;}}}是的,我知道。@SamLeach善意地指出值应该是字符串。