Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Eliminare elementi lista nella quale si sta iterando
Forum - C# / VB.NET - Eliminare elementi lista nella quale si sta iterando

Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
Questo topic è stato chiuso dal moderatore

Salve a tutti,
Se sto iterando con un For Each in una lista (List(Of T)), e all'interno del ciclo elimino un elemento della stessa lista nella quale ciclo, modifico in qualche modo il ciclo o continua normalmente?
In particolare, io faccio così
Codice sorgente - presumibilmente VB.NET

  1. For Each Element as Object In Elements
  2.       If Element.Proprietà = Valore Then
  3.             Elements.Remove(Element)
  4.       End If
  5. Next


Posso farlo tranquillamente:-?

PM
Avatar
walker93 (Member)
Expert


Messaggi: 460
Iscritto: 31/01/2010

Up
3
Down
V
Segnala al moderatore
Postato alle 20:06
Domenica, 08/05/2011
si mi è capitato un po di volte, restituisce un eccezzione come ha detto dedalux...

devi memorizzare gli indici degli elementi da rimuovere su un array e rimuoverli in seguito

hai terribilmente ragione...Ma non mi sorprende ho il debito in italiano scritto... - walker93 - 08/05/11 21:54
PM
Avatar
Dedalux (Member)
Pro


Messaggi: 103
Iscritto: 15/12/2010

Up
2
Down
V
Segnala al moderatore
Postato alle 16:34
Domenica, 08/05/2011
Adesso sono di fretta e non posso testare, ma mi sembra che rischi l'eccezione in quanto mi pare cambino gli indici di posizione e lunghezza...

PM
Usa i commenti per chiedere spiegazioni o ringraziare le risposte.