我有一个要从中删除一些成员的列表。我想使用这种语法:
List<Object> Foo = new List<Object>();
//Some code
foreach (Object obj in Foo)
if (obj.ShouldBeDeleted())
Foo.Remove(obj);
遍历列表并同时对其进行修改是不对的,并且快速测试通过InvalidOperationException确认了它。
有选择地删除列表成员的正确方法是什么?我想到了使用列表的副本,并在从原始列表中删除时遍历该副本,但是这样的内存效率不高。