如何组合列表的元素

Add*_*die 2 c# algorithm list arraylist

我在c#工作.我有一个排序的结构列表.该结构具有一个存储月份和年份的DateTime对象以及一个存储值的整数.该列表按日期排序.我需要遍历列表并将其组合起来,以便每个日期只有一个结构实例.

例如:我的初始列表如下所示:

{ (Apr10, 3), (Apr10, 2), (Apr10, -3), (May10, 1), (May10, 1), (May10, -3), (Jun10, 3) } 
Run Code Online (Sandbox Code Playgroud)

结果列表应如下所示:

{ (Apr10, 2), (May10, -1), (Jun10, 3) }
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个简单/有效的解决方案.

结构是:

struct CurrentTrade
{
    public DateTime date;
    public int dwBuy;
}
Run Code Online (Sandbox Code Playgroud)

清单是:

private List<CurrentTrade> FillList
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 6

您可以使用LINQ:

var newList = (
    from trade in FillList
    group trade by trade.Date.Date into g
    select new CurrentTrade { date = g.Key, dwBuy = g.Sum(t => t.dwBuy) }
).ToList();
Run Code Online (Sandbox Code Playgroud)