这个问题在这里已经有了答案:




9年前关闭。






我有一个 int 列表 List<int> demoList ,它类似于 {1, 2, 1, 1, 1, 3, 2, 1} ,我想编写一个 LINQ 语句来获取该列表中出现次数最多的数字,在我的情况下是 1

最佳答案

 int highestAppearanceNum = demoList.GroupBy(i => i)
            .OrderByDescending(grp => grp.Count())
            .Select(grp => grp.First())
            .First();

编辑 :如果您还想知道哪个数字出现的频率:
var appearances = demoList.GroupBy(i => i)
    .OrderByDescending(grp => grp.Count())
    .Select(grp => new { Num = grp.Key, Count = grp.Count() });
if (appearances.Any())
{
    int highestAppearanceNum = appearances.First().Num;     // 1
    int highestAppearanceCount = appearances.First().Count; // 5
}

关于c# - 如何在 C# 中为 int 列表构建直方图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10335223/

10-13 07:06