我有多个具有日期和值的元素列表。
firstList有(例如):
01/01/2013 , 100
02/01/2013 , 444
03/01/2013 , 357
.
.
.
其他列表包含更多日期和其他值
我在List<List<myElements>> myListOfLists;
现在,我该如何获得1个结果列表,其中包含每个日期的所有值的总和?
谢谢,
答案 0 :(得分:2)
我认为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是所提供解决方案测试的链接。
答案 1 :(得分:1)
您首先必须将列表列入单个列表,然后分组日期,然后 sum 每个组。
你没有显示任何代码,但它应该是:
var result = yourListOfLists.SelectMany(x => x)
.GroupBy(x => x.TheDateProperty)
.Select(grp => new {key = grp.Key,
sum = grp.Sum(e => e.TheNumber)});