我使用ConcurrentDictionary创建一个简单的Object缓存。如果密钥不存在,我试图以原子方式将项添加到集合中,或者如果密钥已存在则替换前一项,即“AddOrReplace”。似乎没有明显的方法来做到这一点。有人可以提出建议吗?
答案 0 :(得分:11)
你不能只使用索引器吗?
dictionary[key] = value;
如果你想...... [...]
无条件地将键/值对存储到字典中, 如果密钥已存在,则覆盖该密钥的任何值...
使用索引器的setter,例如字典[key] = newValue。
public TValue this[TKey key] { get; set; }
将用新的值覆盖现有值 - 我是否正确地说这是你想要的,而不是将新值基于现有值?< / p>
答案 1 :(得分:-1)
听起来你正在寻找AddOrUpdate method。