2014-03-31 30 views
0

我目前有一個控制器返回結果列表。一些結果獲得多次點擊,例如:在asp.net mvc 4中用linq排序/排序

result x, 
result x, 
result x, 
result y, 
result z 

我則試圖將這些結果通過他們與這個代碼在這裏的點擊次數進行排序:

(orgs.Organisations是組織名單即結果)

orgs.Organisations = orgs.Organisations 
         .GroupBy(f => f.Name) 
         .SelectMany(c => c.OrderByDescending(p => p.Name.Count())) 
         .ToList(); 

這是最接近我認爲我已經得到,但它仍然沒有以正確的順序返回它們。任何指導將不勝感激。

回答

1

您當前的查詢會對組中的項目進行排序,而不是針對組。製作OrderBy撥打前SelectMany

orgs.Organisations = orgs.Organisations 
         .GroupBy(f => f.Name) 
         .OrderBy(g => g.Count()) 
         .SelectMany(g => g) 
         .ToList(); 
+0

啊,完美!事後總是很明顯的。非常感謝! – User4