2011-03-16 148 views
3

我有一個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 
    } 
} 
+0

我知道這可能只是演示代碼,但isMailMailSuccessful將始終爲真,因此賦值true和後續if語句是多餘的。 – 2011-03-16 12:05:03

回答

6

你爲什麼要使用LINQ FOT這一點,而不是解釋的僅僅是索引?

喜歡的東西

MyDictionary[person.personID] += 1; 
1

除非我失去了一些東西很明顯:

MyDictionary[person.personID] += 1; 
2
MyDictionary[person.personID] += 1; 

還是第一次使用的containsKey如果你不能確定鍵存在。

4

這裏沒有理由使用LINQ。

假設你的字典是Dictionary<int,int>,你可以簡單地做myDictionary[person.PersonID]++;

您應該首先使用ContainsKey,以便驗證密鑰是否存在於字典中,否則如果您嘗試更改不存在的字典條目,它將引發異常。

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

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

已經寫了我現在不再確定,爲什麼我沒有用++,以及是否會+= 1工作或你是否不得不使用:MyDictionary[person.personID] = MyDictionary[person.personID] + 1;