tôi có cấu trúc lớp sau:dữ liệu Pivot trong hai lồng nhau Danh sách <T> với LINQ
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; }
}
Có thể xoay các List<Employee>
với LINQ vì vậy tôi có kết quả như thế này trong DataGridView tôi:
| Name | Name |...| Name |
Date | Hours | Hours | | Hours |
Date | Hours | Hours | | Hours |
Date | Hours | Hours | | Hours |
Date | Hours | Hours | | Hours |
... | Hours | Hours | | Hours |
Đó là khó khăn vì nó là hai danh sách lồng nhau và tôi chỉ tìm thấy các ví dụ với danh sách duy nhất mà là khá đơn giản. Is it possible to Pivot data using LINQ?
tôi đã đến thời điểm này nhưng nó không hoàn toàn có được nêu ra:
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();
tôi sẽ đánh giá cao bất cứ đề nghị.
Điều này có vẻ rực rỡ, cảm ơn rất nhiều @Rahul. – mdziadowiec