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

本文关键字:确定性 列表 | 更新日期: 2023-09-27 18:20:07

在一个由100个整数值为IntValue的项目组成的列表中,我可以很容易地根据这些值进行分组
var groupby = list.GroupBy(i => i.IntValue);

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

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

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

只需进行一些排序,然后选择第一个:

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();