假设我有一个整数列表。我添加一些值:
list.Add(5);
list.Add(5);
list.Add(27);
list.Add(3);
list.Add(4);
list.Add(4);
list.Add(29);
list.Add(3);
如何获得最常出现的3个数字?像这样:5、3和4。
我试过了 :
public static IEnumerable<T> Mode<T>(this IEnumerable<T> input)
{
var dict = input.ToLookup(x => x);
if (dict.Count == 0)
return Enumerable.Empty<T>();
var maxCount = dict.Max(x => x.Count());
return dict.Where(x => x.Count() == maxCount).Select(x => x.Key);
}
但这只是给我一个数字。
这应该工作正常
var topThreeMostOccuring = arr.GroupBy(x => x)
.OrderByDescending(g => g.Count())
.SelectMany(x => x.Take(1)).Take(3);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句