2011-03-16 140 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;