我有一个int?列表,该列表可以具有3个不同的值:null,1和2。
我想知道其中哪个是我列表中最多的。要按值对它们进行分组,我尝试使用:

MyCollection.ToLookup(r => r)


如何获得最多的价值?

最佳答案

您不需要查阅,只需一个简单的GroupBy即可:

var mostCommon = MyCollection
  .GroupBy(r => r)
  .Select(grp => new { Value = grp.Key, Count = grp.Count() })
  .OrderByDescending(x => x.Count)
  .First()

Console.WriteLine(
  "Value {0} is most common with {1} occurrences",
  mostCommon.Value, mostCommon.Count);

关于c# - 如何获得集合中出现次数最多的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23408644/

10-09 18:35