我遇到了linq的麻烦。
我需要从中得到:
+---------+---------+-------+
| Package | WorkDay | Hours |
+---------+---------+-------+
| Pack1 | 03/01 | 8 |
| Pack1 | 03/01 | 7 |
| Pack1 | 03/02 | 6 |
| Pack2 | 03/02 | 4 |
+---------+---------+-------+
到此:
+-------+-------+-------+
| | 03/01 | 03/02 |
+-------+-------+-------+
| Pack1 | 15 | 6 |
| Pack2 | 0 | 4 |
+-------+-------+-------+
其中,单元格值是该工作日的该包的小时数。
此代码可以正常工作,但它会产生错误的表格布局:
var query = Time
.GroupBy(t => new { t.PackageId, t.WorkDay })
.Select(t => new
{
Package = t.FirstOrDefault().Package,
WorkDay = t.FirstOrDefault().WorkDay,
Hours = t.Sum(x => x.Hours)
});
也许有办法转置查询结果?我不知道如何以优雅的方式实现我的目标。 有人可以帮帮我吗?