2010-10-06 122 views
1

,如果我有这样的结构:分组拉姆达

Batch Amount 
76 495.4 
76 975.75 
76 25 
76 442.46 
77 1335.12 
77 2272.37 
77 34.5 
77 496.99 
77 360 
77 13 
77 594.6 

而且我想要得到的东西像

Batch Amount 
76 1938.61 
77 5106.58 

如何表达的应该是什么?

我开始喜欢的东西:

batches.GroupBy(x => new { Batch = x.Batch, Amount = x.Amount }); 

但它并不完全是我要找的东西。帮助我解决问题。谢谢

回答

5

关闭。试试这个:

batches.GroupBy(x => x.Batch, x => x.Amount).Select(g => new { 
    Batch = g.Key, 
    Amount = g.Sum() 
}); 
+0

噢谢谢你... – Agzam 2010-10-06 16:07:29

1

查询将看起来像:

var bs = from s in batches 
      group s by s.Batch into g 
      select new { Batch = g.Key, Amount = g.Sum(p => p.Amount) }; 

虽然我不知道什么是做的拉姆达相当于将

UPD:

ReSharper的帮助很大! :)

var batches = bs .GroupBy(s => s.Batch).Select(
       g => new {Batch = g.Key, Amount = g.Sum(p => p.Amount)});