我需要按 1) 不同项目出现的次数对列表进行排序,然后 2) 如果两个不同行的计数相同,则该组的最近使用日期。
我的按功能分组和按计数排序在没有日期的情况下工作:
(from x in data
group x by new { x.Col1, x.Col2, x.Col3}
into g
let count = g.Count()
select new
{
g.Key.Col1,
g.Key.Col2,
g.Key.Col3,
count
}).OrderByDescending(x => x.count)
但是,我一直无法成功添加日期排序。我试图将日期列添加为按表达式分组中的聚合,但这不起作用。
(from x in data
group x by new { x.Col1, x.Col2, x.Col3, MaxDate = x.CreatedDateTime.Max()}
into g
let count = g.Count()
select new
{
g.Key.Col1,
g.Key.Col2,
g.Key.Col3,
count,
g.Key.MaxDate
}).OrderByDescending(x => x.count).ThenByDescending(x => x.MaxDate)
我明白为什么它不起作用,我只是想不出另一种添加二级排序的方法。任何想法表示赞赏!