class CounterDict<TKey>
{
public Dictionary<TKey, int> _dict = new Dictionary<TKey, int>();
public void Add(TKey key)
{
if(_dict.ContainsKey(key))
_dict[key]++;
else
{
_dict.Add(key, 1);
}
}
}
class Program
{
static void Main(string[] args)
{
string line = "The woods decay the woods decay and fall.";
CounterDict<string> freq = new CounterDict<string>();
foreach (string item in line.Split())
{
freq.Add(item.Trim().ToLower());
}
foreach (string key in freq._dict.Keys)
{
Console.WriteLine("{0}:{1}",key,freq._dict[key]);
}
}
}
Я хочу вычислить количество вхождений всех слов в строке.
Я думаю, что приведенный выше код будет медленным в этой задаче из-за (посмотрите на функцию Add):
if(_dict.ContainsKey(key))
_dict[key]++;
else
{
_dict.Add(key, 1);
}
Кроме того, сохраняет ли _dict__
public
хорошую практику? (Я не думаю, что это так.)
Как мне изменить это или полностью изменить, чтобы сделать работу?