[英]How to Create a List Within a List with Linq C#
我有一个问题,想象一下我从数据库中收到以下记录的以下情况:
id学生 | 班级名称 | 开始时间 | 时间结束 |
---|---|---|---|
1个 | 英语 | 9 | 11 |
4个 | 西班牙语 | 9 | 11 |
7 | 数学 | 9 | 11 |
7 | 生物学 | 9 | 11 |
7 | 科学 | 9 | 11 |
3个 | 科学 | 9 | 11 |
现在假设我有以下 class:
public class test
{
public int idStudent { get; set; }
public List<StudentGrade> StudentGrades { get; set; }
}
public class StudentGrade
{
public string className { get; set; }
public int startTime { get; set; }
public int endTime { get; set; }
}
使用 Linq,我将如何创建相同的 class,其中我只有一个带有 StudentGrades 列表的“测试”class?
我试着这样做,但我不知道如何创建列表:
var allResult = _getAllClass.FindAll();
var resul = allResult.GroupBy(x => x.studentID)
.Select(s => new test
{
idStudent = s.Select(ss => ss.studentID).FirstOrDefault(),
StudentGrades = ///
}
var result = allResult.GroupBy(x => x.studentID, (k, g) => new test
{
idStudent = k,
StudentGrades = g.Select(r => new StudentGrade
{
className = r.className,
startTime = r.startTime,
endTime = r.endTime,
}).ToList()
}).ToList();
您需要处理该组以在test
变量中创建List
allResult = _getAllClass.FindAll();
var result = allResult.GroupBy(x => x.studentID)
.Select(cg => new test {
idStudent = cg.Key,
StudentGrades = cg.Select(c => new StudentGrade {
className = c.className,
startTime = c.startTime,
endTime = c.endTime,
})
.ToList()
})
.ToList();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.