Collection was modified; enumeration operation may not execute. why?
本问题已经有最佳答案,请猛点这里访问。
抱歉,我搜索了这个错误,但情况不同,对我没有帮助…
我想做一个宇宙飞船入侵游戏,我把所有的子弹列成了一个picutrebox。
1 |
当您按下空格键(Fire按钮)时,将创建一个新的项目符号,并将其添加到表单控件和列表中的所有项目符号中。
当butle从
1 2 3 4 5 6 7 8 9 10 11 | private void tmr_bullets_Tick(object sender, EventArgs e) { foreach (PictureBox _bullet in all_bullets) { _bullet.Location = new Point(_bullet.Location.X, _bullet.Location.Y - 20); if (_bullet.Location.Y <= 0) { all_bullets.Remove(_bullet); } } nr_bullets.Text = Convert.ToString(all_bullets.Count); |
错误:
Collection was modified; enumeration operation may not execute.
很抱歉,如果它被张贴了,但我没有找到我需要的。
枚举集合时不能修改它
1 | all_bullets.Remove(_bullet); |
这将在枚举集合时修改(从集合中删除一个项)
你可以用黑客来做这个
1 | foreach (PictureBox _bullet in all_bullets.ToList()) |