I love ConcurrentDictionary!
Not just because it is concurrent, because of this wonderful method:
public class Storage : IStorage { private readonly ConcurrentDictionary<Guid, ConcurrentDictionary<int, List<object>>> values = new ConcurrentDictionary<Guid, ConcurrentDictionary<int, List<object>>>(); public void Store(Guid taskId, int level, object value) { values.GetOrAdd(taskId, guid => new ConcurrentDictionary<int, List<object>>()) .GetOrAdd(level, i => new List<object>()) .Add(value); } }
Doing this with Dictionary is always a pain, but this is an extremely natural way of doing things.

Comments
Comment preview