我有一个学校清单,每个学校都包含一系列课程,每个课程都包含一名教师。我希望获得不同学校和不同课程的所有教师名单。
public School()
{
public List<Course> Courses;
}
public Course()
{
public Teacher Teacher;
}
var schools = new List<School>();
var allTeachers = schools.select(s => s.Courses.select(t => t.Teacher)).ToList();
我厌倦了,但它给了我一个错误(但它遵守了):处理服务器端结果运算符后做客户端的运算符。我们订购错了......
答案 0 :(得分:2)
schools.SelectMany(s => s.Courses).SelectMany(c => c.Teacher)
或者如果你想用学校&gt;教师&gt;课程...
来构建它schools.SelectMany(s => s.Teachers)
如果同一位教师可以有多个课程/学校,您也可以在最后添加.Distinct()。
答案 1 :(得分:1)
您可以使用此LINQ查询来提取所有Teacher
个对象:
var allTeachers = from school in schools
from course in school.Courses
select course.Teacher;