使用ConcurrentDictionary获取"AddOrReplace"功能

Chu*_*huu 2 c#-4.0

我使用ConcurrentDictionary来创建一个简单的对象缓存.如果密钥不存在,我试图以原子方式将项添加到集合中,或者如果密钥已存在则替换前一项,即"AddOrReplace".似乎没有明显的方法来做到这一点.有人可以提出建议吗?

Jon*_*eet 11

你不能只使用索引器吗?

dictionary[key] = value;
Run Code Online (Sandbox Code Playgroud)

请参阅Stephen Toub的博客文章:

如果你想...
[...]

  • 无条件地将键/值对存储到字典中,如果该键已存在,则覆盖该键的任何值...

这将用新的价值覆盖现有价值 - 我是否正确地说这是你想要的,而不是将新价值基于现有价值?