C#字典TryGetValue有int值,如何避免双重查找
发布时间:2020-12-15 07:57:00 所属栏目:百科 来源:网络整理
导读:在做类似的事情时: 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;} 有什么方法可以避免索引查找来替换现有值吗?
在做类似的事情时:
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部分我处理没有键存在的情况. 解决方法
不是我所知道的 – 但字典访问应该非常快,除非你有一个自定义类被覆盖GetHashCode很差. 如果由于双重查找而没有看到性能问题,我会不管它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |