列表中最大的子组,但确定性

时间:2014-08-30 07:09:44

标签: c# linq grouping

在例如100个具有整数值IntValue的项目,我可以轻松地按这些值进行分组 var groupby = list.GroupBy(i => i.IntValue);

现在找到groupby变量中最大组的最佳Linq方法是什么?

它必须是确定性的,所以当列表中有两个具有相同项目数的最大组时,我希望选择最小值IntValue

1 个答案:

答案 0 :(得分:2)

只需做一些订购,然后选择第一个:

var group = groupby.OrderByDescending(g => g.Count())
                   .ThenBy(g => g.Key)
                   .First();

您可以使用基于语法的查询来实现相同的目标:

var group = (from g in groupby
             order g by g.Count() descending, g.Key
             select g).First();