根据某些条件从列表中删除多个对象

Mik*_*ley 2 c#

我偶然发现了一些代码,它试图从满足特定条件的列表中删除对象.

有一个已经创建的对象列表,其中包含一些内容:

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)