在做这样的事情:C#字典TryGetValue为int值,如何避免重复查找
int value;
if (dict.TryGetValue(key, out value))
{
if (condition)
{
//value = 0; this copies by value so it doesn't change the existing value
dict[key] = 0;
}
}
else
{
dict[key] = 0;
}
有什么方法可以让我避免索引查找替换现有的价值?我已经使用TryGetValue验证了密钥是否存在,因此看起来像是一种浪费,不得不再次通过索引检索值。
在另一个注释中,与我的代码的else {}部分一样,在添加新值或替换旧值时使用索引器通常被认为是很好的做法,并且添加以清楚说明您正在添加而不是替换?或者我应该每次只使用索引器?我学会了使用字典的方式,我总是做一个TryGetValue查找,并在else部分处理没有密钥存在的情况。
你不会查找它两次。 – 2013-04-09 13:52:26
@ DanielA.White:使用索引器进行查找IIRC; p – leppie 2013-04-09 13:53:09
您的(条件)是否依赖于“值”? – 2013-04-09 13:53:11