基于子列表属性的筛选器列表集合包含名称

时间:2016-11-08 05:38:17

标签: c# linq

当子列表的元素包含名称时,我想让LinQ查询过滤列表集合。这里父项的子列表应该满足包含标准,并且那些子列表仅包含在父列表中。

示例:

public class Student
{
    int Id;
    List<subject> SubjectList;
    string Name;
}

public class Subject
{
    int Id;
    string Name;
}

List<Student> studentList = new List<Student>();

这里我希望LINQ查询只过滤SubjectList的StudentList,主题名称应该包含“maths”,结果必须是带有subjectlist的studentlist,它只包含数学。

1 个答案:

答案 0 :(得分:7)

问题出在哪里?

var mathStudents = StudentList.Where(x => x.SubjectList.Any(y => y.Name == "maths"));

返回StudentListSubject SubjectList Name maths中至少有一个var mathCourses = mathStudents.Select(x => new { x.Student, Math = x.SubjectList.Where(y => y.Name == "maths") }); 的所有元素。

如果您只想要每个学生的数学课程,您可以使用它:

foo