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

C# - mscorlib.dll 中未处理的异常

您收到的错误是由以下情况引起的

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集合被修改,你会收到错误。