使用foreach()从集合中删除多个实体?

Keh*_*mme 3 c# collections entity-framework

尝试运行此代码时,我不断收到"收集已修改"错误

var mat = db.Materials
    .Where(m => m.ID == material)
    .First();

var oldCourses = mat.Courses;

foreach (var oldCourse in mat.Courses)
{
    oldCourses.Remove(oldCourse);
}
mat.Courses = oldCourses;
Run Code Online (Sandbox Code Playgroud)

我不知道该怎么办 我确信这是一个常见的问题,但我似乎无法找到任何解决方案.

任何帮助甚至是回答问题的链接都将非常感激.

Tra*_*s J 19

您可以使用简单地枚举此集合以用作迭代器.ToList().

foreach (var oldCourse in mat.Courses.ToList())
{
  oldCourses.Remove(oldCourse);
}
Run Code Online (Sandbox Code Playgroud)