3

晚上好,

我设法让我的 Linq 查询几乎正确。还有一个问题我正在努力解决。

我的查询是

var o =
  (from c in x
   group c by x.Date.Date into cc
   select new 
   { 
      Group = cc.Key.Date, 
      Items = cc.ToList(),
      ItemCount = cc.Count() 
   }).OrderByDescending(p => p.Group);

现在这个查询工作正常。它按日期在 ListView 中分组。x.Date 是我的 SQL 数据库中的 DateTime 字段。因此,我选择 x.Date.Date 以按 DateTime 字段的实际日期分组,就好像它只是 x.Date 它会按日期和时间分组。

我的问题是,我如何按时间分组,以便最新时间位于组的顶部?

非常感谢

4

3 回答 3

4

使用 linq“ThenBy()”方法:

var o = (from c in x group c by x.Date.Date into cc select new 
  { 
    Group = cc.Key.Date, 
    Items = cc.OrderByDescending(y=>y.Date).ToList(), 
    ItemCount = cc.Count() 
  })
  .OrderByDescending(p => p.Group)      
于 2012-08-30T18:01:22.807 回答
2

更改Items = cc.ToList()Items = cc.OrderBy(c => c.[field_you_want_to_sort_by]).ToList()

于 2012-08-30T18:07:47.950 回答
1
var o =
  (from c in x
   group c by c.Date.Date into cc
   select new 
   { 
      Group = cc.Key.Date, 
      Items = cc.OrderByDescending(a=>a.Date.Time).ToList(),
      ItemCount = cc.Count() 
   }).OrderByDescending(p => p.Group);
于 2012-08-30T18:09:30.703 回答