2012-01-03 135 views
3

我有一个简单的业务对象:的Linq:总计组按月

Crime 
    Date 
    PersonsInvolved 

我需要每月PersonsInvolved的总清单。数据为1年,所以不需要考虑年份。

Jan 5 
Feb 3 
Mar 5 

这是如何在LINQ的做,如果我有一个在内存中收集这样的:

List<Crime>() crimes; 

回答

3
 

var q = from i in crimes 
    group i by i.Date.ToString("MMM") into grp 
    select new {Month = grp.Key, Count = grp.Sum(i => i.Persons)}; 
 
+0

大声笑,是啊,这是对的。我应该学会阅读...... – codekaizen 2012-01-04 03:11:37

0
List<Crime>() crimes = ... 
var crimesPerMonth = crimes.GroupBy(x => x.Date.Month); 
8
crimes.GroupBy(c => c.Date.Month).Select(g => new { Month = g.Key, Count = g.Count() });