for each et remove

Le
fred
Bonjour ,

Est ce que quelqu'un peut me donner la version correct du code ci dessous;

For Each Com As clsSocketCommunication In Me.SocketCommunicationCollection

If Com.IsObsolete Then

Me.SocketCommunicationCollection.Remove(Com)

End If

Next

A l'evidence celui ci ne marche pas, mais je vois pas comment faire
differement.

Merci pour votre aide



Fred
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Patrice
Le #16686111
L'idée est d'accéder à la collection via un index allant de Count-1 à 0 (For
i As Integer=MaConnection.Count-1 to 0 Step -1)

Le problème est que si on parcours la collection de l'élément 0 à l'élément
Count-1, la suppression d'un élément modifie l'index de tous les éléments
qui suivent et qui n'ont pas encore été traités ce qui pose donc problème
(que ce soit soit avec un index ou un "for each").

En parcourant la sélection depuis la fin, la suppression d'un élément n'a
aucun impact sur les éléments précédents ce qui permet donc de parcourir la
collection sans problème tout en y supprimant des éléments...

--
Patrice

"fred"
Bonjour ,

Est ce que quelqu'un peut me donner la version correct du code ci dessous;

For Each Com As clsSocketCommunication In Me.SocketCommunicationCollection

If Com.IsObsolete Then

Me.SocketCommunicationCollection.Remove(Com)

End If

Next

A l'evidence celui ci ne marche pas, mais je vois pas comment faire
differement.

Merci pour votre aide



Fred





fred
Le #16695151
Bonjour et merci pour la solution je vais iterer sur l'index par le bas.
Frederic
"Patrice"
L'idée est d'accéder à la collection via un index allant de Count-1 à 0
(For i As Integer=MaConnection.Count-1 to 0 Step -1)

Le problème est que si on parcours la collection de l'élément 0 à
l'élément Count-1, la suppression d'un élément modifie l'index de tous les
éléments qui suivent et qui n'ont pas encore été traités ce qui pose donc
problème (que ce soit soit avec un index ou un "for each").

En parcourant la sélection depuis la fin, la suppression d'un élément n'a
aucun impact sur les éléments précédents ce qui permet donc de parcourir
la collection sans problème tout en y supprimant des éléments...

--
Patrice

"fred"
Bonjour ,

Est ce que quelqu'un peut me donner la version correct du code ci
dessous;

For Each Com As clsSocketCommunication In
Me.SocketCommunicationCollection

If Com.IsObsolete Then

Me.SocketCommunicationCollection.Remove(Com)

End If

Next

A l'evidence celui ci ne marche pas, mais je vois pas comment faire
differement.

Merci pour votre aide



Fred








Publicité
Poster une réponse
Anonyme