2015-02-24 40 views
1

我需要按照計數編號的降序順序顯示組數,然後按最後更新行的順序(CreatedDateTime desc)顯示。這怎麼可以用LINQ來完成?Linq按組數和最後更新的順序組

TableA.GroupBy(c => c.UserID).Select(
        g => new { UserID = g.Key, Count = g.Count() } 
       ).OrderByDescending(c => c.Count) 

下面是一個預期排序的例子。

Table A 
TableAID UserID TableBID CreatedDateTime 
1   1  1  .. 
2   1  1  .. 
3   2  2  .. 
4   2  2  .. 
...... 

回答

1

像這樣(我希望):-)我所選擇的Max(CreatedDateTime)

TableA.GroupBy(c => c.UserID) 
     .Select(g => new { UserID = g.Key, Count = g.Count(), g.Max(h => h.CreatedDateTime) }) 
     .OrderByDescending(c => c.Count) 
     .ThenByDescending(c => c.CreatedDateTime) 

注意。我本可以使用Min(CreatedDateTime),但結果會有所不同。

+0

很棒,這是我需要的。稍後會提出答案 – scr1pting 2015-02-24 14:10:55