| 

.NET C# Java Javascript Exception

1
Hallo Leute,
ich erstelle eine Liste aus einer meiner Klassen. Damit ihr euch das ganze Vorstellen könnt:
Es ist ein Spiel, sowas in der Art wie ein Arkanoid- Spiel.
1 Stein = Object einer Klasse(cStone.vb).
List Of cStone.vb = Liste der Steine.

Wenn ich jetzt mit dem Ball einen Stein treffe, entferne ich diesen aus der Liste(liste.remove(guid)). Nach 2 oder 3 Steine bekomme ich eine exception, bei der Überprüfung welche Steine noch zum zeichnen da sind, da sich die Liste ja verkleinert.

Habe bereits dannach gegooglet aber nur wenig darüber gefunden. Es scheint ja ein bekanntes Problem zu sein aber ich steige bei der Lösung nicht durch. Klar könnte ich noch eine weitere Property mit Visible true/false machen, jedoch wäre es mir lieber die Objekte aus dem Speicher zu schmeissen.

Vielen Dank
Gruß
Spicejam
26.12.2010
spicejam 853 2 6
Welche Exception bekommst du?
gfoidl 27.12.2010
exception: collection was modified - müsste es sein, habe das Projekt gerade nicht zur Hand.
spicejam 27.12.2010
Ist doch eindeutig ;-)
D.h. du solltest immer die aktuelle Liste fürs Zeichnen verwenden und nicht die ursprüngliche über welche (per foreach) iteriert wird da diese eben geändert wird.
gfoidl 27.12.2010
Hmm und genau hier ist der Wurm drin! Erst nachdem ich die Liste modifiziert habe, zeichne ich. Trotzdem erhalte ich die Exception.
spicejam 27.12.2010
1
Hallo spicejam, bin zurück aus dem Urlaub (naja in Wahrheit ein Umzug). Zeig uns doch bitte ein paar Auszüge aus deinem Code.
Floyd 03.01.2011
Nur ums das klar zu stellen, dein Problem ist durchaus bekannt jedoch ist eine Lösung start abhängig von der Implementierung.
Floyd 03.01.2011
1 Antwort
0
statt gleich mit Remove das Element aus der Liste zu entfernen, würde ich Find aufrufen und auf null prüfen - das löst dein Problem
05.01.2011
Rene Drescher-Hackel 1,1k 1 8
Du meinst? for each obj in Liste .. obj = nothing .. next ? Das entspricht im wesendlichen seinem Gedanken: "Klar könnte ich noch eine weitere Property mit Visible true/false machen, jedoch wäre es mir lieber die Objekte aus dem Speicher zu schmeissen."
Floyd 05.01.2011

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH