我有多個元素列表中有一個日期和一個值。使用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