Я ищу хорошее имя для пользовательского словаря, который автоматически инициализирует значение для запрошенного ключа, если он не существует, с использованием делегата. Реализация индексатора должна помочь понять, что он делает:
public V this[K key]
{
get
{
V value;
if (!_dictionary.TryGetValue(key, out value))
{
value = _defaultValueGenerator(key);
_dictionary[key] = value;
}
return value;
}
set
{
_dictionary[key] = value;
}
}
Моя проблема не в коде, который работает нормально, но я не могу найти подходящее имя для этого класса ... Я подумал о AutoInitDictionary
, но он звучит неправильно и не ' Это действительно передает идею о том, что «все ключи могут существовать».
Как бы вы назвали такой класс? Любое предложение будет оценено.
PS: пример того, как его можно использовать:
var charFrequencies = new AutoInitDictionary<char, int>(key => 0);
foreach(char c in text)
charFrequencies[c]++;