在列表中的最大子組, 100個項目的整數值爲IntValue
,我可以很容易地按這些值進行分組。
var groupby = list.GroupBy(i => i.IntValue);
列表中的最大子組,但是確定性的
什麼是最好的LINQ的方式來找到現在groupby
變量最大的羣體?
它必須是確定性的,所以當列表中有兩個最大的組具有相同數量的項目時,我想選擇最低值IntValue
。
在列表中的最大子組, 100個項目的整數值爲IntValue
,我可以很容易地按這些值進行分組。
var groupby = list.GroupBy(i => i.IntValue);
列表中的最大子組,但是確定性的
什麼是最好的LINQ的方式來找到現在groupby
變量最大的羣體?
它必須是確定性的,所以當列表中有兩個最大的組具有相同數量的項目時,我想選擇最低值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'子句。 – Gerard 2014-08-30 07:13:37
您可以使用基於語法的查詢獲得相同的結果,編譯器會找出要調用的方法。我已經更新了我的答案。 – MarcinJuraszek 2014-08-30 07:15:53
[其實](HTTP://www.xkcd。 com/1318 /),你想要的是一個額外的排序標準,而不是「決定論」。 – Groo 2014-08-30 07:36:53
確實。但就我而言,它的目的是使選擇具有確定性。否則,不需要額外的標準,也不會使選擇更好。 – Gerard 2014-08-30 07:47:54