Gå til innhold

Slette en post i en liste


Anbefalte innlegg

Heisan igjen

Jeg har følgende deklarasjon

Public ClientList as List (of ClientClass)

 

Denne listen inneholder en oversikt over tråder som er startet av klienter, altså et nettverksbasert system, men det er uvesentlig her.

 

Jeg har en metode som rydder opp i klientlista

for each Client as ClientClass in ClientList
 if not Client.Connected
   Client = Nothing
 End if
End For

Det jeg lurer på er: Hva skal jeg skrive rett errer CLIENT = NOTHING for å slette denne posten. Jeg leser i hjelp at det ikke er tillat å gjøre collection endringer i en For Each ... Next loop fordi neste post som leses vil være ugyldig. Dette har jeg selvsagt forståelse for. I Clarion (mitt tidligere liv) så kan jeg enkelt løse det ved å reversere loopen slik:

Loop i = records(ClientList) to 1 by -1
 Get(ClientList, i)
 if ClientList.ClientConnection.IsConnected = False
   Dispose(ClientList.ClientConnection)
   ClientList.ClientConnection &= Null
   Delete(ClientList)
 End!If
End!Loop

Som dere ser så kan jeg slette en post i en liste på denne måten uten at det skjer noe med "neste" post som leses fordi enumereringen ikke trenger å kjøres hver gang. Noe tilsvarende i VB tro?

 

Ole

Lenke til kommentar
Videoannonse
Annonse
Dim ToDelete as New List(of ClientClass)

for each Client as ClientClass in ClientList

  if not Client.Connected

      ToDelete.Add(Client)

  End if

End For

 

for each c as ClientClass in ToDelete

    ClientList.Remove( c )

end for

7704690[/snapback]

Ahhh. Smart :-)

 

Ole

Lenke til kommentar
Dim ToDelete as New List(of ClientClass)

for each Client as ClientClass in ClientList

  if not Client.Connected

       ToDelete.Add(Client)

  End if

End For

 

for each c as ClientClass in ToDelete

    ClientList.Remove( c )

end for

7704690[/snapback]

Ahhh. Smart :-)

 

Ole

7705448[/snapback]

 

Bare en ting til. Betyr det at jeg ikke trenger å sette lik NOTHING først?

 

Ole

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...