我厌倦了显示文字中出现超过x
次的单词。
x
可以是任意数字
我尝试splitting
这个单词用空格并输入array
。但我没有得到预期的答案。
如果有人有想法
由于
答案 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;
}
然后,循环遍历字典并获得每个密钥的计数为三个或更多。