Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用于返回唯一项的嵌套列表的linq查询_C#_Linq_Linq To Sql - Fatal编程技术网

C# 用于返回唯一项的嵌套列表的linq查询

C# 用于返回唯一项的嵌套列表的linq查询,c#,linq,linq-to-sql,C#,Linq,Linq To Sql,我有一个linq查询,如下所示: var leaveDetails = (from l in leaveList group l by new {l.LeaveDateStart.Year, l.LeaveType} into yearGroup select new { yearGroup.Key.Year,

我有一个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
进行分组,您就可以得到一个列表,其中包含您按年份获得的唯一yearGroup结果,您就完成了。@Maarten听起来是可行的。你介意作为回复发帖吗?谢谢,只需稍加修改,效果就很好了Year=yearGroup.Key'在select语句中。是的,我现在看到了。更正。
var leaveDetailsPerYear = (from l in leaveDetails
                           group l by l.Year
                           into yearGroup
                           select new {
                                Year = yearGroup.Key,
                                Data = yearGroup.ToList()
                           }
                          )
                          .ToList();