2010-03-22 42 views

Trả lời

27

Trong trường hợp đặc biệt này, List<T>.RemoveAll có lẽ là bạn của bạn:

C# 3:

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

C# 2:

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

Cảm ơn bạn rất nhiều! – iTayb

+0

chúng ta có thể làm list.Remove (x => x.level == 5) ;? Nếu chúng ta muốn xóa một quyển sách có cấp độ là 5. –

+0

@FarazAhmad: Bạn có thể sử dụng 'list.RemoveAll (x => x.level == 5)'. Không có quá tải của 'Remove' mà mất một vị ngữ mặc dù. –

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

Mặc dù danh sách. RemoveAll() là một giải pháp tuyệt vời, nó có một "foreach" trên bộ sưu tập resuling trong O (n) hoặc hiệu suất tồi tệ hơn. Nếu bạn có nhiều mục trong danh sách, tôi sẽ đề nghị kiểm tra các bộ sưu tập của Index 4 đối tượng của Erick.

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

Các vấn đề liên quan