如何显示文字中出现超过'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; 
} 

然后,你遍历字典,让每一个键具有三个或更多的计数。

+0

而Linq是在哪里? –

+0

在编辑问题之前,没有Linq的要求。 – User

+0

ASP.NET在哪里? – recursive