LINQ查询以返回唯一项的嵌套列表

3

我有一个Linq查询:

            var leaveDetails = (from l in leaveList
            group l by new {l.LeaveDateStart.Year, l.LeaveType}
            into yearGroup
            select new 
            {
                yearGroup.Key.Year,
                yearGroup.Key.LeaveType,
                LeaveTaken = yearGroup.Sum(l => EntityFunctions.DiffDays(l.LeaveDateStart, l.LeaveDateEnd))

            }).ToList();

以下是结果:

如下图所示:

显示查询结果的图片 但我想按不同的年份进行分组。所以对于每个独特的年份,我都有一个请假类型列表和请假天数。

我试过在JavaScript前端实现,但看起来很乱。有没有一种方法可以在C#或linq查询中实现呢?谢谢。


只需不按l.LeaveType分组,您就可以获得具有唯一年份的列表。 - Grundy
按年份分组,你就完成了。 - Maarten
@Maarten 听起来可行。你介意把它发布为答案吗? - mboko
1个回答

1

您目前有一个按年份和假期类型分组的结果。您可以仅按年份对当前结果进行分组,并选择假期类型和休假天数作为每组的值。

像这样(注意:尚未测试):

var leaveDetailsPerYear = (from l in leaveDetails
                           group l by l.Year
                           into yearGroup
                           select new {
                                Year = yearGroup.Key,
                                Data = yearGroup.ToList()
                           }
                          )
                          .ToList();

谢谢,这个工作很顺利,只需进行了一个小的编辑。在选择语句中,更改为'Year = yearGroup.Key'。 - mboko
是的,我现在看到了。已经更正了。 - Maarten

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接