我有這樣的代碼正在被運行遊戲的每一幀:C# - 字典鍵值對的變化值,而在的foreach
foreach (var repeaterAction in conditionTimes.Keys)
{
if (repeaterAction.Condition() == true)
{
if (conditionTimes[repeaterAction] == TimeSpan.Zero)
{
repeaterAction.Action();
}
else if (conditionTimes[repeaterAction] >= repeaterAction.InitialLapse)
{
repeaterAction.Action();
conditionTimes[repeaterAction] -= repeaterAction.ActionInterval;
}
conditionTimes[repeaterAction] += gameTime.ElapsedGameTime;
}
else
{
conditionTimes[repeaterAction] = TimeSpan.Zero;
}
}
這是給我下面的錯誤:
Collection was modified; enumeration operation may not execute.
有沒有辦法修改foreach循環內鍵值對中的值,而不需要每一幀都複製字典?
這太棒了!謝謝你已經度過了我的一天 – zabulus 2012-05-14 13:49:33