C# - Wert Ändern von Wörterbuch-Schlüssel-Wert-paar, während in der foreach -

Habe ich diesen code, der ausgeführt wird jeden frame ein Spiel:

    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;
        }
    }

Dies gibt mir die folgende Fehlermeldung:

Auflistung wurde geändert; der Enumerationsvorgang kann nicht ausgeführt werden.

Gibt es eine Möglichkeit, ändern Sie den Wert in den Schlüssel-Wert-Paare in der foreach-Schleife, ohne Sie zu kopieren Sie das Wörterbuch für jeden frame?

InformationsquelleAutor James | 2011-02-23
Schreibe einen Kommentar