0

我有以下结构中的数据,我需要按 Id 和 Date 分组。日期是数组中的一个字段。我需要在顶层对按 Id 分组的每个日期的金额求和,这对 linq 是否可行?

Id 
Number 
MyArray[]

MyArray 如下:

[Amount, Date]

试图使用这样的东西,但它不会工作,因为我的第二个分组是在主要项目的数组上

输入:

Id Number  MyArray
1    5     [{500.00,2001-03-08}, {200,2001-04-04}, {600, 2001-03-09}] 
2    6     [{700.00,2001-03-08}, {300,2001-03-08}]
1    7     [{400.00,2001-03-08}, {100, 2001-04-04}, {550.00,2001-12-12}]

预期结果:

  Id    MyArray
   1    [{500.00+400.00,2001-03-08}, {200+100,2001-04-04}, {600, 2001-03-09}, {550.00,2001-12-12}] 
   2    [{700.00,2001-03-08}, {300,2001-03-08}]

from s in db.Schedules

group s by new {s.empid, s.weekending} into g

select new { g.Key.empid, g.Key.weekending, g.Sum(s => s.hours) };
4

1 回答 1

-1
var results = db.Schedules.GroupBy(x => x.Id)
                          .Select(g => new
                                       {
                                           .Id = g.Key,
                                           .Data = g.SelectMany(x => x.MyArray)
                                                    .GroupBy(x => x.Date)
                                                    .Select(g2 => new { Amount = g2.Sum(x => x.Amount), Date = g2.Key })
                                                    .ToArray()
                                        });
于 2013-07-18T09:45:49.880 回答