Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. 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


Il software è come il sesso, è meglio quando è libero.
Linus Torvalds, Conferenza della Free Software Foundation, 1996 (attribuito)

Non provare mai a spiegare il computer a un profano. È più facile spiegare il sesso a una vergine.
Robert Anson Heinle
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...


«La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.»

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