【发布时间】:2016-09-20 15:44:55
【问题描述】:
我有这个问题。有一个字符串
string [5] names = { "John", "Sam", "Harry", "Sam", "John" }
我需要找到数组中最常见的元素。我尝试使用:
string MostCommon = names.GroupBy(v => v)
.OrderByDescending(g => g.Count())
.First()
.Key;
不幸的是,它只找到一个元素,例如MostCommon = John,在这种情况下,我不仅需要John,还需要Sam。我怎么能那样做?也许在这种情况下不需要 LINQ?
【问题讨论】:
-
.First()是你的问题。去掉.First(),你会得到不止一个结果,但你不会知道那个单一的LINQ语句的具体计数是什么。 -
不,那个重复是 OP 想要避免的,只选择第一个最大值。它不处理 OP 的情况,其中一个以上的成员可能具有最大计数。