Kann man eine Liste während der Iteration ändern?

7

Ich habe folgendes:

%Vor%

Dies funktioniert jedoch nicht, weil ich die Sammlung in der Mitte einer Schleife modifiziere. Meine Frage ist ... gibt es eine Art von Sammlung, die diese Art des Zugriffs erlaubt?

Ich möchte nicht die Tiefenkarten (ToList ()), weil ich sie bereits habe und ich will diese Liste ändern möchte, während ich iteriere. Ist es möglich?

    
RobVious 20.07.2013, 22:07
quelle

3 Antworten

18

Es ist möglich, dass der Trick ist, rückwärts zu iterieren:

%Vor%     
Óscar López 20.07.2013, 22:11
quelle
7

Sie können mit einem for -loop

rückwärts iterieren %Vor%

Sie können auch List.ForEach verwenden, um die Liste bei der Iteration zu ändern:

%Vor%

oder wenn Sie nur Objekte in einer Bedingung entfernen möchten, verwenden Sie List.RemoveAll :

%Vor%     
Tim Schmelter 20.07.2013 22:12
quelle
1

Sie können einen benutzerdefinierten Enumerator erstellen, der dies für Sie übernimmt. Ich habe das einmal gemacht und es war ein bisschen schwierig, aber nach einiger Finesse gearbeitet.

Siehe: Ссылка

    
Haney 20.07.2013 22:08
quelle

Tags und Links