2010-03-22 3 views

ответ

27

В данном конкретном случае, List<T>.RemoveAll, вероятно, ваш друг:

C# 3:

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

C# 2:

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

Большое спасибо! – iTayb

+0

мы можем сделать список. Удалить (x => x.level == 5) ;? Если мы хотим удалить книгу, уровень которой равен 5. – 2014-02-16 20:18:56

+0

@FarazAhmad: вы можете использовать 'list.RemoveAll (x => x.level == 5)'. Нет никакой перегрузки 'Remove', которая берет предикат. –

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

Хотя список. RemoveAll() - отличное решение, оно делает «foreach» для сбора данных в O (n) или худшей производительности. Если у вас много элементов в списке, я бы предложил проверить коллекции «Индекс 4» в Erick.

См. http://www.codeplex.com/i4o

Смежные вопросы