如何使用LINQ查找和显示字符串中重复次数最多的单词
本文关键字:单词 LINQ 何使用 查找 字符串 显示 | 更新日期: 2023-09-27 18:12:08
String ss = "lijo is lijom is lijo fdf"; //here two words "is" and "lijo" is repeating two times so my output will be
output : lijo
is
我试过了
var count=words.GroupBy(g=>g).Max(k=>k.Count());
//finding the max repeating elements count =2
var res = words.GroupBy(s => s).Where(g => g.Count() == count).Select(s => s);
在这里,我首先尝试找到重复单词的最大计数。并在另一个查询中分配此值。
我需要知道我们是否可以将这两个查询写在一起作为一个查询。作为子查询如何用另一种方式做到这一点?使用子查询或任何其他简单的方法?
有一个过载组,可以很容易地给你你的计数。
String ss = "lijo is lijom is lijo fdf";
var words = ss.Split();
var query = words.GroupBy(
word => word,
(key, counts) => new
{
Word = key,
Count = counts.Count()
});
为了完成这个,我建议使用MaxBy扩展。
试试这个:
var l = words.GroupBy(x => x).Select(y => new{key = y.Key, count = y.Count()}).ToList();
var max = l.OrderByDescending(y=>y.count).First().count;
var result = l.Where(x => x.count == max).Select(y=>y.key);
l
只得到单词对及其频率。max
是l
的最大计数。result
将给出频率最高的单词。