2

有没有办法让一个 LINQ 查询包含基于不同计数标准的两个不同计数?例如,假设我想查询“收件箱”以获取现有邮件总数的计数以及每个收件箱的所有未读邮件的另一个计数。

所以这是我正在寻找的结果......
NAME UNREAD TOTAL
gbush 10 20
bobama 30 100

这可以在一个查询中完成还是我需要两个查询?

这是我必须计算未读项目的数量,但我在哪里/如何获得总项目?

var results = from message in context.inbox
              where message.Status = "UNREAD"
              group message by message.Name into g
              select new { Name = g.Key, Unread = g.Count() };
4

1 回答 1

3

您可以使用Count接受谓词的重载:

var results = from message in context.inbox
              group message by message.Name into g
              select new 
              { 
                  Name = g.Key, 
                  Unread = g.Count(m => m.Status == "UNREAD"),
                  Total = g.Count()
              };
于 2012-08-22T19:42:00.787 回答