如何显示文字中出现超过'x'次的单词?
问题描述:
我很累人,显示的文字多于x
次。 x
可以是任意数字 我试图用空格splitting
这个词并将其放入array
。但我没有得到预期的答案。 如果任何人有一个想法如何显示文字中出现超过'x'次的单词?
感谢
答
string text = "yay blah blah blah blah woo woo yay yay yay.";
var words = Regex.Split(text, @"\W+")
.AsEnumerable()
.GroupBy(w => w)
.Where(g => g.Count() > 3)
.Select(g => g.Key);
words.ToList().ForEach(Console.WriteLine);
输出:
耶
等等
答
虽然没有肯定最好的(阅读最efficinent)的方式来解决这个问题,你可以先用空格,逗号,分号等来分割文本。然后,在结果列表中的每个单词你尝试将其添加到Dictionary<string,int>
:
if (!dictionary.TryGetValue(word, out int count))
{
dictionary.Add(word, 1);
}
else
{
dictionary[word] += 1;
}
然后,你遍历字典,让每一个键具有三个或更多的计数。
而Linq是在哪里? –
在编辑问题之前,没有Linq的要求。 – User
ASP.NET在哪里? – recursive