2010-03-22 36 views

Antwort

27

In diesem speziellen Fall List<T>.RemoveAll ist wahrscheinlich Freund:

C# 3:

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

C# 2:

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

Vielen Dank! – iTayb

+0

Können wir list.Remove (x => x.level == 5) ;? Wenn wir ein Buch entfernen wollen, dessen Level 5 ist. –

+0

@FarazAhmad: Sie können 'list.RemoveAll (x => x.level == 5)' verwenden. Es gibt keine Überladung von 'Remove', die jedoch ein Prädikat übernimmt. –

5

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

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

Obwohl Liste. RemoveAll() ist eine ausgezeichnete Lösung, es macht eine "foreach" auf die Sammlung in O (n) oder schlechter Leistung. Wenn Sie viele Artikel in der Liste haben, würde ich vorschlagen, Erick's Index 4 Objects Sammlungen auschecken.

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

Verwandte Themen