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

时间:2012-06-26 13:19:31

标签: c# asp.net dictionary compare match

我有两个词典DictA& DictB如:

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键,值的值与 DictB键,值进行比较,如果 MATCH IS FOUND INCREMENT COUNTER 变量。

注意:与DicB相比,DicA可能包含许多行 EG:DicA有3行,DicB有2行。如果DicA键,值与DicB键匹配(相似/相等),则val将计数器变量递增1!

任何建议..!帮助赞赏......!

2 个答案:

答案 0 :(得分:3)

使用此代码:

int matches = DictA.Keys.Where(k => DictB.ContainsKey(k) && DictB[k] == DictA[k]).Count();

答案 1 :(得分:1)

您可以使用:

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++;
          }
     }
}