我有一个类,其中有一个list<Book>
,而这些Book
对象具有许多属性。
如何从该列表中删除每个其level
值与5不同的书?
List<T>.RemoveAll
可能是你的好帮手:list.RemoveAll(x => x.level != 5);
C# 2:
list.RemoveAll(delegate(Book x) { return x.level != 5; });
list.RemoveAll(bk => bk.Level != 5);
list.RemoveAll(delegate(Book b) { return b.Level == 5; });
虽然List.RemoveAll()是一个很好的解决方案,但它会在集合上执行“foreach”,导致O(n)或更差的性能。如果列表中有很多项,我建议您查看Erick的Index 4 Objects集合。
list.RemoveAll(x => x.level == 5)
。但是,没有重载的Remove
接受谓词。 - Jon Skeet