如何在c#列表中获得显示最多的项

本文关键字:显示 列表 | 更新日期: 2023-09-27 18:19:23

我知道在c#中,从列表中获取项目可以使用FirstOrDefault()或其他函数。我正在寻找一个函数可以从列表中获得最呈现的项目。

例如:

{ "a" , "a" , "a" , "b" }.MostPresents() => "a"
在c# (asp.net 4.0)中是否有一个默认函数用于此?

如何在c#列表中获得显示最多的项

在c# (asp.net 4.0)中是否有一个默认函数用于此?

不,但你可以拼凑一些LINQ,很快就能得到。

var mostFrequent = sequence.GroupBy(x => x)
                           .Select(g => new { g.Key, Count = g.Count() })
                           .MaxBy(x => x.Count)
                           .Key;

这里我用的是MaxBy

var MostCommonItem = list.GroupBy(item => item)
                         .OrderByDescending(g => g.Count())
                         .Select(g => g.Key).First();