我可能遗漏了一些明显的东西 - 但是当我在词典或集合上.Count
时,我得到的错误计数与字典或集合中的实际元素数相比。
我的代码计算字符串中的字数,并返回Collection<KeyValuePair<string, uint>>
。
这是我的代码:
string myString = String.Format("Hello world this is test test test test hi");
var result = WordCounter.GetWordCollection(myString);
result.Dump(); //Using LINQPad .Dump() method
Console.WriteLine ("Counted {0} words in {1}ms", result.Count, stopwatch.Elapsed.Milliseconds);
foreach (var word in result)
{
Console.WriteLine ("{0} - {1}", word.Key, word.Value);
}
结果:
出了什么问题?
编辑:我正在计算唯一单词的数量而没有意识到它,就像评论/答案所说的那样。我需要使用result.Sum(n => n.Value)
。
答案 0 :(得分:1)
它工作正常 - 字典中有七个键,每个键都有一个值,表示它们在源文本中的次数。数量为7意味着有七个独特的单词。对这些值求和将为您提供包括重复在内的总字数。