如何在文本中显示超过“x”次的单词?

时间:2011-09-06 13:52:38

标签: c# asp.net linq

我厌倦了显示文字中出现超过x次的单词。 x可以是任意数字 我尝试splitting这个单词用空格并输入array。但我没有得到预期的答案。 如果有人有想法

由于

2 个答案:

答案 0 :(得分:10)

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);

输出:

  


  嗒嗒

答案 1 :(得分:0)

虽然不能确定解决问题的最佳方法(阅读效率最高),但您可以先用空格,逗号,分号等分割文本。然后,对于结果列表中的每个单词,您尝试将其添加到Dictionary<string,int>

if (!dictionary.TryGetValue(word, out int count))
{
    dictionary.Add(word, 1);
}
else
{
    dictionary[word] += 1;
}

然后,循环遍历字典并获得每个密钥的计数为三个或更多。