我正在努力创造一个" flat"来自对象的通用对象列表,其中包含项目列表。我将在下面解释:
public int sumSquares(int n){
int sum = 0;
for(int i = 1; i <=n; i++){
sum += i*i;
}
return sum;
}
我现在有一个名为public class Student
{
public string Name;
public string Age;
}
public class Classroom
{
public string Name;
public List<Student> Students;
}
的课堂对象列表,每个对象都填充了一个学生列表,我只需要一个通用列表,它将为每个教室和所有教室中的每个学生提供以下信息:
List<Classroom> Classrooms
提前致谢。
答案 0 :(得分:3)
你可以使用SelectMany
Linq扩展名:
Classrooms.SelectMany(classroom => classroom.Students.Select(student => new
{
ClassroomName = classroom.Name,
StudentName = student.Name,
StudentAge = student.Age
}))
答案 1 :(得分:2)
你可以得到你想要的东西:
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 }
可能更好。