C# 列表中最大的子组,但具有确定性
在一个包含100个整数值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())
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
子句。使用基于语法的查询可以得到相同的结果,编译器将确定为您调用哪个方法。我已经更新了我的答案,你想要的是一个额外的排序标准,而不是“决定论”。但在我的情况下,它的目的是使选择具有确定性。否则,不需要附加标准,或者这不会使选择更好。