转置linq结果

时间:2014-12-10 17:49:57

标签: c# sql linq

我遇到了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)
            });

也许有办法转置查询结果?我不知道如何以优雅的方式实现我的目标。 有人可以帮帮我吗?

0 个答案:

没有答案