Linq group按计数和顺序按组的最后更新

时间:2015-02-24 14:03:32

标签: c# linq

我需要根据计数的降序显示groupby计数,然后按最后更新行(CreatedDateTime desc)的顺序显示。如何使用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 个答案:

答案 0 :(得分:1)

喜欢这个(我希望): - )

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)

请注意,我选择了Max(CreatedDateTime)。我本可以使用Min(CreatedDateTime),但结果会有所不同。