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

C# 列表中最大的子组,但具有确定性,c#,linq,grouping,C#,Linq,Grouping,在一个包含100个整数值IntValue的项目的列表中,我可以很容易地根据这些值进行分组。 var-groupby=list.groupby(i=>i.IntValue) 现在,在groupby变量中查找最大组的最佳Linq方法是什么 它必须是确定性的,因此当列表中有两个最大的组具有相同数量的项目时,我想选择IntValue的最低值,只需进行一些排序并取第一个: var group = groupby.OrderByDescending(g => g.Count())

在一个包含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();

不知道
ThenBy
子句。使用基于语法的查询可以得到相同的结果,编译器将确定为您调用哪个方法。我已经更新了我的答案,你想要的是一个额外的排序标准,而不是“决定论”。但在我的情况下,它的目的是使选择具有确定性。否则,不需要附加标准,或者这不会使选择更好。