gpt4 book ai didi

c# - 获取列表中出现次数最多的前 3 个数字

转载 作者:行者123 更新时间:2023-12-04 10:45:54 26 4
gpt4 key购买 nike

假设我有一个整数列表。
我添加了一些值:

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

关于c# - 获取列表中出现次数最多的前 3 个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59707532/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com