Я хотел бы инициализировать значение 0, если он еще не существует. В противном случае он должен увеличивать существующее значение.Попытка понять, как работает ConcurrentDictionary
ConcurrentDictionary<int, int> dic = new ConcurrentDictionary<int, int>();
dic.AddOrUpdate(1, 0, (key, old) => old++);
dic.AddOrUpdate(2, 0, (key, old) => old++);
В этот момент словарь имеет ключи 1 и 2 со значением 0 каждый.
dic.AddOrUpdate(1, 0, (key, old) => old++);
На данный момент для ключа 1 значения должны быть 1, тогда как для ключа 2 должно быть 0, однако, оба имеют значение 0. Любая идея, почему?
извините моя ошибка. Обновленный вопрос –
См. Eric lippert ответ здесь: http: //stackoverflow.com/questions/3346450/what-is-the-difference-between-i-and-i и определенно не принятый ответ. –