作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这段代码,如果玩家不活着,就会删除玩家,但我认为问题出在 foreach
循环上。我见过涉及制作新列表的解决方案,但我看不出如何将它应用到我的代码中。谁能解释一下?
private Dictionary<int, Player> numPlayers = new Dictionary<int, Player>();
private void CheckPlayers()
{
foreach (Player player in numPlayers.Values)
{
if (!player.isAlive)
{
canvas.Children.Remove(player.hand);
numPlayers.Remove(player.id); // breaks here
}
}
}
最佳答案
查询要删除的玩家集合:
var playersToDelete = numPlayers.Values.Where(p => !p.isAlive).ToList();
然后删除玩家:
foreach(var player in playersToDelete) {
canvas.Children.Remove(player.hand);
numPlayers.Remove(player.id);
}
关于c# - 集合被修改;枚举操作可能无法执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9726484/
我是一名优秀的程序员,十分优秀!