C# 收集被修改;I';时引发枚举操作时,枚举操作可能不会执行;我不会在循环中修改集合
我是一名计算机科学专业的学生,对编码真的不太了解,所以如果有任何帮助,我将不胜感激 我已经看过很多其他的例子,说明这个错误是在其他代码中抛出的——我知道它是在迭代过程中试图更改集合时发生的。但我没有那样做;C# 收集被修改;I';时引发枚举操作时,枚举操作可能不会执行;我不会在循环中修改集合,c#,C#,我是一名计算机科学专业的学生,对编码真的不太了解,所以如果有任何帮助,我将不胜感激 我已经看过很多其他的例子,说明这个错误是在其他代码中抛出的——我知道它是在迭代过程中试图更改集合时发生的。但我没有那样做;PrevGen=NowGen行在foreach循环之外,所以我不明白它为什么会抛出错误 代码: intmonths=int.Parse(Console.ReadLine()); 控制台写入线(“寿命”); int lifespan=int.Parse(Console.ReadLine());
PrevGen=NowGen代码>行在foreach循环之外,所以我不明白它为什么会抛出错误
代码:
intmonths=int.Parse(Console.ReadLine());
控制台写入线(“寿命”);
int lifespan=int.Parse(Console.ReadLine());
List PrevGen=新列表{0};
List NowGen=新列表();
控制台写入线(前置计数);
对于(int i=0;i
PrevGen = NowGen;
List
是一种引用类型,在该赋值之后,PrevGen引用NowGen实例。
它们成为指向同一实例的两个变量
该错误在foreach内部抛出,因为您试图在枚举同一实例时添加项
我的建议是删除该行代码,并用包含在NowGen中的项目替换PrevGen中的所有项目,例如:
PrevGen.Clear();
PrevGen.AddRange(NowGen);
希望有帮助!您是否设置了断点,哪一行会抛出错误?这是因为PrevGen=NowGen。您将它们都设置为相同的对象。因此,如果您修改了一个,另一个也会被修改。
PrevGen.Clear();
PrevGen.AddRange(NowGen);