2014-10-26 2 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); –

+1

Если ключ существует, увеличьте значение с помощью 'concordanceDictionary [word] ++' – stuartd

ответ

5

Вы должны использовать indexer свойства:

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

вобще

else 
{ 
    concordanceDictionary[word]++; 
} 
0

Если тест для ContainsKeys терпит неудачу и после добавления ключа просто увеличьте значение.
Там нет необходимости из другого блока

string[] words = SplitWords(lines); 
foreach (var word in words) 
{ 
    if (!concordanceDictionary.ContainsKey(word)) 
     concordanceDictionary.Add(word, 0); 
    concordanceDictionary[word]++; 
} 
Смежные вопросы