我有多个元素列表中有一个日期和一个值。使用Linq的列表清单的元素总和
firstList有(例如):
01/01/2013 , 100
02/01/2013 , 444
03/01/2013 , 357
.
.
.
其他列表中有更多的日期及其它值
而且我在List<List<myElements>> myListOfLists;
添加每个列表现在,我应该怎么做才能有1个结果列表,其中包含每个日期的所有值的总和?
感谢,
我有多个元素列表中有一个日期和一个值。使用Linq的列表清单的元素总和
firstList有(例如):
01/01/2013 , 100
02/01/2013 , 444
03/01/2013 , 357
.
.
.
其他列表中有更多的日期及其它值
而且我在List<List<myElements>> myListOfLists;
添加每个列表现在,我应该怎么做才能有1个结果列表,其中包含每个日期的所有值的总和?
感谢,
我想这myElement的定义是这样的:
public class Item
{
public DateTime Date { get; set; }
public double Amount {get; set; }
}
然后您最初的名单将类型为List<List<Item>>
。你可以把量总和在同一日期,如果你压扁您最初的名单,象下面这样:
List<Item> result = myListOfLists.SelectMany(x => x)
.GroupBy(x => x.Date)
.Select(grp => new Item
{
Date = grp.Key,
Amount = grp.Sum(y => y.Amount)
}).ToList();
Here是提供解决方案的测试环节。
你首先要扁平化你的列表清单到一个列表,然后组由日期,然后总和每个组。
你没有表现出任何代码,但它应该是沿:
var result = yourListOfLists.SelectMany(x => x)
.GroupBy(x => x.TheDateProperty)
.Select(grp => new {key = grp.Key,
sum = grp.Sum(e => e.TheNumber)});
我可以知道为什么我会得到一个投票吗? – Oliver