It depends, in my case I prefer using this method.
ConcurrentDictionary.AddOrUpdate Method (TKey, Func, Func);
See MSDN Library for method usage details.
Sample usage:
results.AddOrUpdate(
Id,
id => new DbResult() {
Id = id,
Value = row.Value,
Rank = 1
},
(id, v) =>
{
v.Rank++;
return v;
});