C# - mscorlib.dll 中未处理的异常
本文关键字:未处理 异常 dll mscorlib | 更新日期: 2023-09-27 18:30:58
当我循环时出现此错误
An unhandled exception of type 'System.InvalidOperationException' occurred in mscorlib.dll
Additional information: Collection was modified; enumeration operation may not execute
您收到的错误是由以下情况引起的
foreach(var item in collection)
{
collection.Add(newItem); // will set up the error
collection.Remove(item); // will set up the error
}
上面的代码实际上编译成这样的东西:
IEnumerator iEnum = collection.GetEnumerator();
while (iEnum.GetNext())
{
var item = iEnum.Current;
collection.Add(newItem); // will set up the error
collection.Remove(item); // will set up the error
}
在尝试获取下一项(即在下一个循环开始时)之前,您不会收到错误。如果修改任何 IEnumerable 集合,则需要离开循环,而不是调用IEnumerator
对象返回的GetNext()
成员IEnumerable
因此,如果在代码中的某个地方,在执行时,比如说你执行的Players
集合,导致Players
集合被修改,你会收到错误。