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);
这里我试过首先找到重复单词的最大数量。并在另一个查询中分配此值。
我需要知道我们是否可以将这两个查询一起编写为一个查询。作为子查询 如何以不同的方式做到这一点? 使用子查询或任何其他简单的方法?
答案 0 :(得分:2)
群体超载可以很容易地给你你的数量。
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扩展程序。
答案 1 :(得分:0)
试试这个:
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
会为您提供最高频率的字词。