Supprimer Élément Courant de la Liste si certains critères de matchs
Je suis en train de supprimer mon poste actuel pour chaque tour de boucle si certains criterai les matchs, mais son déclenchement d'erreur après le retrait et la mise en boucle de nouveau.
Mon exemple de code:
For Each Item As BookingRoom In myBookedRooms
If Item.RoomInfo.UIN = myRoom.UIN Then
myBookedRooms.Remove(Item)
Continue For
End If
Next
*Note RoomInfo et myRoom sont les deux instances de la Salle de Classe
Je suis en utilisant myBookedRooms.remove
mais son déclenchement d'erreur, de sorte que peut-être la bonne façon de le faire? c'est à dire, supprimer la réservation de la chambre, si la chambre de l'id correspond à celui sélectionné
OriginalL'auteur KoolKabin | 2011-06-02
Vous devez vous connecter pour publier un commentaire.
Le problème est que vous êtes à la modification de la collecte lors de l'itération sur elle.
Vous pouvez parcourir la liste dans le sens inverse avec une boucle for:
Alternativement, vous pouvez utiliser le
RemoveAll
méthode:Une autre option est d'utiliser le
Énumérable.Où
méthode pour filtrer les résultats, mais contrairement aux deux précédentes approches que vous auriez besoin pour inverser votre logique case pour exclure les éléments correspondants puisque l'intention est de les enlever:.Except( ... ).ToList()
serait aussi travailler.vouliez-vous dire
Where
?Except
nécessiterait une deuxième séquence. Mis à jour pour inclureWhere
.Oui, j'ai fait dire Où() 🙁
thnx il a travaillé...
OriginalL'auteur Ahmad Mageed