0

我在 C# 中有一个包含以下数据的列表,

列表的结构是,

HarvestWeekDate   HarvestDate    Quantity
1/2/2012          1/2/2012       100
1/2/2012          1/2/2012       100
1/2/2012          1/3/2012       100
1/2/2012          1/4/2012       100
1/2/2012          1/5/2012       100
1/2/2012          1/6/2012       100
1/2/2012          1/6/2012       100

1/9/2012          1/9/2012       100
1/9/2012          1/10/2012       100
1/9/2012          1/10/2012       100
1/9/2012          1/11/2012       100
1/9/2012          1/12/2012       100
1/9/2012          1/13/2012       100
1/9/2012          1/13/2012       100

我想按收获周日期分组,然后从收获周组中获取不同的收获日期,然后按不同的收获日期将收获周的数量相加。

谢谢和问候,费萨尔·纳西尔


有什么方法可以使用 Lambda Expression 来实现吗?

4

2 回答 2

0

假设您的列表被命名为 HarvestData,这里是一个 LINQ 查询,它将为您提供您正在寻找的结果:

var groupedData = (from d in harvestData
                   group d by new { 
                        HarvestWeekDate = d.HarvestWeekDate, 
                        HarvestDate = d.HarvestDate } into g
                   select new { 
                      HarvestWeekDate = g.Key.HarvestWeekDate, 
                      HarvestDate = g.Key.HarvestDate, 
                      TotalQuantity = g.Sum (w => w.Quantity) }
                  );

我建议查看101 LINQ Samples以了解更多信息。

于 2013-04-07T17:40:06.433 回答
0

如果通过“Lambda 表达式”,您的意思是 Linq 扩展方法:

var groupedData = harvestData.GroupBy (d => new { d.HarvestDate, d.HarvestWeekDate })
                             .Select  (g => new { HarvestWeekDate = g.Key.HarvestWeekDate, 
                                                  HarvestDate = g.Key.HarvestDate, 
                                                  TotalQuantity = g.Sum (w => w.Quantity) });
于 2013-04-08T17:22:54.480 回答