删除列表中的项目

Bab*_*bad -2 c# list invalidoperationexception

我用c#编程.我正在尝试从a中删除一个项目,List<>但是当我删除该项目时,我收到此异常错误:

mscorlib.dll中出现"System.InvalidOperationException"类型的异常,但未在用户代码中处理

附加信息:收集已修改; 枚举操作可能无法执行.

这是我的代码:

foreach (Target t in targetList)
{
    if (t.CalculateDistance(t.EndX, t.EndY) <= 5)
    {
        targetList.Remove(t);
    }
}
Run Code Online (Sandbox Code Playgroud)

我在第一行得到例外.为什么我看到这个错误?或者我该如何解决?

Luc*_*Luc 12

您遇到的问题是您无法修改通过itterate通过的集合.您可以使用linq解决此问题:

targetList.RemoveAll(t => t.CalculateDistance(t.EndX, t.EndY) <= 5);
Run Code Online (Sandbox Code Playgroud)