我偶然发现了一些代码,它试图从满足特定条件的列表中删除对象.
有一个已经创建的对象列表,其中包含一些内容:
List<Foo> FooList = new List<Foo>()
FooList.Add(...)
FooList.Add(...)
Run Code Online (Sandbox Code Playgroud)
在其他一些函数中,他们然后去掉了一些对象:
List<Foo> RemovedFoo = new List<Foo>()
foreach (Foo f in FooList
if (f.Condition)
RemoveFoo.Add(f);
foreach (Foo f in RemovedFoo)
FooList.Remove(f);
RemovedFoo.Clear();
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法呢?我知道你不能简单地在第一个循环中执行删除,但肯定必须有一个更聪明的方法来执行此操作.
Ree*_*sey 12
你可以使用List<T>.RemoveAll:
FooList.RemoveAll(f => f.Condition);
Run Code Online (Sandbox Code Playgroud)