gpt4 book ai didi

c# - 队列 ForEach 循环抛出 InvalidOperationException

转载 作者:可可西里 更新时间:2023-11-01 08:31:07 26 4
gpt4 key购买 nike

我没用过Queues<T>之前的任何真实程度,所以我可能会遗漏一些明显的东西。我正在尝试遍历 Queue<EnemyUserControl>像这样(每一帧):

foreach (var e in qEnemy)
{
//enemy AI code
}

当一个敌人死亡时,敌人用户控件引发一个我订阅的事件,我这样做(队列中的第一个敌人被设计移除):

void Enemy_Killed(object sender, EventArgs e)
{
qEnemy.Dequeue();

//Added TrimExcess to check if the error was caused by NULL values in the Queue (it wasn't :))
qEnemy.TrimExcess();
}

但是,在调用 Dequeue 方法之后,我得到一个 InvalidOperationExceptionforeach 上环形。当我使用 Peek相反,没有错误,因此它必须对 Queue 本身的更改做一些事情,因为 Dequeue 会删除对象。我最初的猜测是它提示我正在修改一个由枚举器迭代的集合,但是出列是在循环外执行的?

有什么可能导致此问题的想法吗?

谢谢

最佳答案

我知道这是一篇旧帖子,但以下内容呢:

var queue = new Queue<int>();
queue.Enqueue(1);
queue.Enqueue(2);

while (queue.Count > 0)
{
var val = queue.Dequeue();
}

干杯

关于c# - 队列 ForEach 循环抛出 InvalidOperationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6234087/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com