如何在另一个IEnumerable中过滤IEnumerable?

时间:2018-05-14 13:51:15

标签: c#

我在控制器中创建了一个学生列表,让我们说课程ID是5:

int courseID = 5;
var students = _context.Students.ToList()

每个学生都有一个IEnumerable课程,所以它可以有多个课程。你如何过滤它们,以便你只收到一份不属于该课程的学生名单?

例如:

var students = _context.Students.ToList().Where(student => student.NoCoursesHave(courseID == 5);

但这显然不起作用......

我知道当你只是处理像他们的名字这样的单个变量时,你可以很容易地过滤:

var students = _context.Students.ToList().Where(student => student.FirstName != "Bob");

超级简单!但是,如何在另一个IEnumerable中过滤IEnumerable?

1 个答案:

答案 0 :(得分:4)

[...].Where(student => !student.Courses.Any(course => course.Id == 5));
假设CoursesIEnumerable<Course>类中Student的名称

应该可以解决问题 如果有student.Courses.Any(course => course.Id == 5)等于true的课程,

Id将返回5,否则会返回false

根据评论,最后使用.ToList()会更好。