[英]Create generic list from an object and its list using lambda
我正在尝试从一个对象创建一个“平面”通用列表,其中包含一个项目列表。 我解释如下:
public class Student
{
public string Name;
public string Age;
}
public class Classroom
{
public string Name;
public List<Student> Students;
}
我现在有一个名为List<Classroom> Classrooms
的Classroom对象List<Classroom> Classrooms
每个对象都填充了一个学生列表,我需要的是一个通用列表,它将为每个教室和所有教室中的每个学生提供以下信息:
{Classroom.Name, Student.Name, Student.Age}
提前致谢。
你可以使用SelectMany
Linq扩展:
Classrooms.SelectMany(classroom => classroom.Students.Select(student => new
{
ClassroomName = classroom.Name,
StudentName = student.Name,
StudentAge = student.Age
}))
你可以得到你想要的东西:
var results = (
from room in Classrooms
from student in room.Students
select new { Room=room.Name, student.Name, student.Age }
).ToList();
这将为您提供匿名类型实例的列表。 最好声明一个类并使用它 - new MyClass(room.Name, etc)
而不是new { Room=room.Name, etc }
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.