2010-03-22 4 views

Répondre

27

Dans ce cas particulier, List<T>.RemoveAll est probablement votre ami:

C# 3:

list.RemoveAll(x => x.level != 5); 

C# 2:

list.RemoveAll(delegate(Book x) { return x.level != 5; }); 
+0

Merci beaucoup! – iTayb

+0

pouvons-nous faire la liste.Retirer (x => x.level == 5) ;? Si nous voulons supprimer un livre dont le niveau est 5. –

+0

@FarazAhmad: Vous pouvez utiliser 'list.RemoveAll (x => x.level == 5)'. Il n'y a pas de surcharge de 'Remove' qui prend un prédicat cependant. –

5

list.RemoveAll(bk => bk.Level != 5);

1
list.RemoveAll(delegate(Book b) { return b.Level == 5; }); 
1

Bien que la liste. RemoveAll() est une excellente solution, il fait un "foreach" sur la collection en O (n) ou pire performance. Si vous avez beaucoup d'éléments dans la liste, je vous suggère de consulter les collections Index 4 objets d'Erick.

Voir http://www.codeplex.com/i4o

Questions connexes