Увеличить значение словаря по указанному ключу - PullRequest
4 голосов
/ 16 марта 2011

У меня есть переменная bool и словарь. если это правда, я должен увеличить значение моего словаря на 1 при указанном ключе.

Мой код:

 private void Process(Person person)
 {
     isSendMailSuccessful = true;

     if (isSendMailSuccessful)
     {
         MyDictionary.Where(i => i.Key == person.personID);
         // I need to increase Value of that ID by 1
     }
 }

Ответы [ 5 ]

7 голосов
/ 16 марта 2011

Почему вы используете LINQ для этого, а не только индексатор словаря?

Что-то вроде

MyDictionary[person.personID] += 1;
4 голосов
/ 16 марта 2011

Нет причин использовать LINQ здесь.

Предполагая, что ваш словарь Dictionary<int,int>, вы можете просто сделать myDictionary[person.PersonID]++;.

Сначала вы должны использовать ContainsKey, поэтому убедитесь, что ключ существует в словаре, иначе он выдаст исключение, если вы попытаетесь изменить запись словаря, которая не существует.

2 голосов
/ 16 марта 2011
MyDictionary[person.personID] += 1;

Или сначала используйте ContainsKey, если вы не уверены, что ключ существует.

1 голос
/ 16 марта 2011
 private void Process(Person person)
 {
     isSendMailSuccessful = true;

     if (isSendMailSuccessful)
     {
         MyDictionary[person.personID] += 1;
     }
 }

Написав, что я больше не уверен, почему я не использовал ++, и будет ли работать += 1 или вам придется использовать: MyDictionary[person.personID] = MyDictionary[person.personID] + 1;

1 голос
/ 16 марта 2011

Если я не пропустил что-то очевидное:

MyDictionary[person.personID] += 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...