2011-03-18 129 views
21

试图找出一个linq查询,并想知道你们是否可以提供帮助。Linq group by query

我有一个对象列表foo,并且每个foo对象都有一个bar的列表。酒吧有一个活动日期和一个数值。例如

foo 
    bar -> 01/02/05, 10000 
    bar -> 04/06/10, 30023 
foo 
    bar -> 30/01/02, 23494 

我想写一个LINQ查询将返回我的日期明显的列表和总结总该日期

这可能是上周五,但我画空白。

在此先感谢

回答

45

看起来像你想:

var query = from foo in list 
      from bar in foo.Bars 
      group bar.Value by bar.Date into dates 
      select new { Date = dates.Key, Sum = dates.Sum() }; 
+0

是的,这就是票...想我需要回家 – 2011-03-18 15:25:57

+0

@brokem,我总结了总数,而不是日期数 – 2011-03-18 15:26:47

+0

@mjmcloug:是的,我意识到,一旦我已经写了评论 - 马上删除它。 – BrokenGlass 2011-03-18 15:34:51

6

检查它,以及...

var q = from e in Entries 
      select new 
      { 
       EntryID = e.EntryID, 
       EntryName = e.EntryName, 
       EntryDescription = e.EntryDescription, 
       VoterID = voterID, 
       Score = (int?)(from v in e.Votes 
           where v.VoterID == voterID 
           select v.Score).FirstOrDefault()