Есть ли .NET-аналог Python's defaultdict
? Мне удобно писать короткий код, например. Подсчет частоты:Аналог параметра defaultdict Python?
>>> words = "to be or not to be".split()
>>> print words
['to', 'be', 'or', 'not', 'to', 'be']
>>> from collections import defaultdict
>>> frequencies = defaultdict(int)
>>> for word in words:
... frequencies[word] += 1
...
>>> print frequencies
defaultdict(<type 'int'>, {'not': 1, 'to': 2, 'or': 1, 'be': 2})
Так в идеале в C# я мог бы написать:
var frequencies = new DefaultDictionary<string,int>(() => 0);
foreach(string word in words)
{
frequencies[word] += 1
}
Что означает 'defaultdict' сделать ? Я не знаком с python. Изменить: это просто словарь, который имеет значение по умолчанию для ключей. Вы можете подклассифицировать «Словарь» и реализовать функциональность. – Romoku
Ответ Джона Скита может помочь: http://stackoverflow.com/a/2601501/1786606. – Vladimir