Re[5]: Dictionary<X, Dictionary<Y, Z>>
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 18.10.15 09:12
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>Это понятно. В STL есть отдельный метод find который не создаёт ничего, а только ищет.
EP>А вообще, вот такое поведение, где operator[] создаёт default в случае отсутствия — очень удобно. Потому что обычно default является нейтральным элементом относительно применяемых операций. Простой пример это подсчёт количества вхождений — ++count[id], или например конкатенация строк result_string[id] += s;, или случай ТС со вложенными контейнерами.
А для классов default(T) будет null. И не всегда нужен 0 по умолчанию для чисел.
По уму нужно передавать в конструктор словаря конструктор значения по умолчанию.
Тогда
d.GetOrAdd(ключ) будет возвращать значение по умолчанию. И логика понятна.
и солнце б утром не вставало, когда бы не было меня
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.