我有一个类中有list<Book>
的类,而那些Book
个对象有很多属性。
我如何从该列表中删除他的level
值不同的每本书,例如5?
答案 0 :(得分:28)
在这种特殊情况下,List<T>.RemoveAll
可能是你的朋友:
C#3:
list.RemoveAll(x => x.level != 5);
C#2:
list.RemoveAll(delegate(Book x) { return x.level != 5; });
答案 1 :(得分:5)
list.RemoveAll(bk => bk.Level != 5);
答案 2 :(得分:1)
list.RemoveAll(delegate(Book b) { return b.Level == 5; });
答案 3 :(得分:1)
虽然List.RemoveAll()是一个很好的解决方案,但它会对集合产生“foreach”,从而导致O(n)或更差的性能。如果列表中有很多项目,我建议查看Erick的Index 4 Objects集合。