2014-10-26 46 views
2

我试图创建一致性。 我有字典,其中的关键 - 是词和价值 - 是这个词的频率 如果单词存在字典中,我需要增加这个词的价值。 我使用的containsKey,以检查是否存在这个词,机器人不明白如何增加值增加字典中存在的键的值

string[] words = SplitWords(lines); 

    foreach (var word in words) 
    { 
      int i = 0; 
      if (!concordanceDictionary.ContainsKey(word)) 
      { 
       concordanceDictionary.Add(word, i); 
      } 
      else 
      { 

      } 
      foreach (KeyValuePair<string, int> pair in concordanceDictionary) 
      { 
       Console.WriteLine("{0}:{1}",pair.Key, pair.Value); 
      } 
     } 
+2

嗯,更好地做出concordanceDictionary.Add(字,1); – 2014-10-26 22:30:06

+1

如果键存在,用'concordanceDictionary [word] ++增加值' – stuartd 2014-10-26 22:30:10

回答

5

您需要使用indexer属性:

if (!concordanceDictionary.ContainsKey(word)) 
{ 
    concordanceDictionary.Add(word, 1); 
} 
else 
{ 
    concordanceDictionary[word]++; 
} 
4

只是做

else 
{ 
    concordanceDictionary[word]++; 
} 
0

如果对ContainsKeys的测试失败,并且在添加密钥之后,只需递增该值。
没有必要的else块

string[] words = SplitWords(lines); 
foreach (var word in words) 
{ 
    if (!concordanceDictionary.ContainsKey(word)) 
     concordanceDictionary.Add(word, 0); 
    concordanceDictionary[word]++; 
}