gpt4 book ai didi

c# - 使用 Linq 在两个嵌套 List 中透视数据

转载 作者:太空狗 更新时间:2023-10-29 23:38:23 34 4
gpt4 key购买 nike

我有以下类结构:

class Employee()
{
public String Name { get; set; }
public List<WorkDay> WorkDays { get; set; }
}

class WorkDay()
{
public DateTime Date { get; set; }
public Int Hours { get; set; }
}

是否可以旋转 List<Employee>使用 Linq,所以我的 DataGridView 中有这样的结果:

           | Name    | Name    |...| Name      |
Date | Hours | Hours | | Hours |
Date | Hours | Hours | | Hours |
Date | Hours | Hours | | Hours |
Date | Hours | Hours | | Hours |
... | Hours | Hours | | Hours |

这很棘手,因为它是两个嵌套列表,而且我只找到了非常简单的单个列表示例。 Is it possible to Pivot data using LINQ?

我已经到了这一步,但还没有到:

var _result = Employees.SelectMany(x => x.WorkDays)
.GroupBy(x => x.Date)
.Select(y => new
{
DATE = y.Key,
NAME = y.Select(z => z.Employee.Name).ToArray()
})
.ToList();

如果有任何建议,我将不胜感激。

最佳答案

我想你需要这个:-

var result = employees.SelectMany(x => x.WorkDays, (employeeObj, workDays) => 
new { employeeObj, workDays })
.GroupBy(x => x.workDays.Date)
.Select(x => new
{
Date = x.Key,
NameAndHours = x.Select(z =>
new {
Name = z.employeeObj.Name,
Hours = z.workDays.Hours
})
}).ToList();

这是 Working Fiddle带有一些示例数据。

关于c# - 使用 Linq 在两个嵌套 List<T> 中透视数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29344413/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com