你可以嘗試做這樣的事情:
private static void Main(string[] args)
{
var columns = new List<Column>();
var dateRanges = new List<DateRange>()
{
new DateRange(new DateTime(2013, 09, 03), new DateTime(2014, 09, 03))
};
var result = columns.GroupBy(
column => dateRanges.FirstOrDefault(dr => dr.IsInRange(column.Date)),
(dr, drc) => new KeyValuePair<DateRange, int>(dr, drc.Sum(v => v.Value)));
}
public struct DateRange
{
public DateRange(DateTime from, DateTime to)
: this()
{
From = from;
To = to;
}
public bool IsInRange(DateTime date)
{
return date >= From && date <= To;
}
public DateTime From { get; private set; }
public DateTime To { get; private set; }
}
public class Column
{
public int Value { get; set; }
public DateTime Date { get; set; }
}
'.GroupBy'有一些關鍵字,例如'arg => arg.MyDateTime.Year' ??你試過什麼了?你的班級佈局是什麼? – 2014-09-03 11:35:05
你能展示一些代碼嗎?您的'日期'列字符串或日期時間中的值? – sr28 2014-09-03 11:39:55
如果您將月份的整數除以8並將其添加到年份,則會爲每個組分配一個唯一的密鑰。 – 2014-09-03 11:47:16