Supprimer les éléments de liaison de la liste
Dans un de mes projets que je suis en train de supprimer un élément d'une liste où l'id est égal à l'id donné.
J'ai un BindingList<T>
appelé UserList
.
Listes ont tous la méthode RemoveAll()
.
Depuis que j'ai un BindingList<T>
, je l'utilise comme ça:
UserList.ToList().RemoveAll(x => x.id == ID )
Cependant, ma liste contient le même nombre d'éléments comme avant.
Pourquoi il ne fonctionne pas?
Vous devez vous connecter pour publier un commentaire.
Il ne fonctionne pas parce que vous travaillez sur une copie de la liste que vous avez créé en appelant
ToList()
.BindingList<T>
ne prend pas en chargeRemoveAll()
: c'est unList<T>
fonction uniquement, donc:Nous appelons
ToList()
ici parce que sinon nous allons énumérer une collection tout en le modifiant.Vous pourriez essayer:
Si vous utilisez
RemoveAll()
à l'intérieur d'une classe générique que vous avez l'intention d'être utilisé pour stocker une collection de n'importe quel type d'objet, comme ceci:Ce contenu est tiré de ici.
Si il est juste un élément d'ID unique à l'intérieur de bindinglist, le ci-dessous de code simple peut travailler.