按收获周分组行并在C#中得到总和

时间:2013-04-07 16:26:52

标签: c#-4.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实现这个目标吗?

2 个答案:

答案 0 :(得分: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了解详情。

答案 1 :(得分:0)

如果是“Lambda Expression”,则表示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) });