有没有类似Python defaultdict
的.NET版本?我发现写一些简短的代码很有用,比如计算频率:
>>> 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
}
4条答案
按热度按时间ecbunoof1#
下面是一个简单的实现:
以及如何使用它:
或者像这样:
hc8w905p2#
一些帮助你开始的东西。我基本上只是改变了
this
的索引器。因为我不知道python的defaultdict
的完整功能,所以我不能进一步改进它。你给出的例子将工作。hjzp0vay3#
我不认为有一个等效的,但鉴于您的例子,您可以用LINQ做到这一点:
67up9zun4#
优点:
缺点: