c# - linq查询返回唯一项的嵌套列表

标签 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,
                yearGroup.Key.LeaveType,
                LeaveTaken = yearGroup.Sum(l => EntityFunctions.DiffDays(l.LeaveDateStart, l.LeaveDateEnd))

            }).ToList();

结果如下图所示:

Image showing query results 但是我想按不同的年份分组。因此,对于每个独特的年份,我都有一个休假类型和休假天数的列表。

我试过在前端用 javascript 做,但看起来很乱。有没有一种方法可以在 C# 或 linq 查询中完成。谢谢

最佳答案

您有一个按年份和休假类型分组的当前结果。您可以简单地按年份对当前结果进行分组,然后选择休假类型和休假作为每组值(value)。

像这样(注:没测试过):

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

关于c# - linq查询返回唯一项的嵌套列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29693706/

相关文章:

c# - 有没有办法从 C# CultureInfo 获取标志图像?

c# - 从 Markdown 文本中获取原始文本

c# - vs2012中删除自动编码项的快捷方式?

c# - LINQ在简单操作中的效率

c# - 为什么要编写自定义 LINQ 提供程序?

c# - 如何从 Linq to SQL 中的日期时间列获取月份名称?

c# - 在 C# 中键入右大括号后,如何自动将光标定位在方法大括号之间?

c# - 对collection进行一次操作,对费用加权平均求和

c# - 如何从 C# 中的对象生成 xml 并格式化它?

c# - 查找未一起查看的两个元素的组合(LINQ、SQL 或 C#)