信息
您所需的主题如下所示。但此主题未包含在此库中。

List<T>.RemoveAll 方法

2013/12/13

移除与指定的谓词所定义的条件相匹配的所有元素。

Namespace:  System.Collections.Generic
程序集:  mscorlib(位于 mscorlib.dll 中)

public int RemoveAll(
	Predicate<T> match
)

参数

match
类型: System.Predicate<T>
Predicate<T> 委托,用于定义要移除的元素应满足的条件。

返回值

类型: System.Int32
List<T> 中移除的元素数。

异常条件
ArgumentNullException

matchnull

Predicate<T> 是对方法的委托,如果传递给它的对象与委托中定义的条件匹配,则该方法返回 true。当前 List<T> 的元素被逐个传递给 Predicate<T> 委托,并从 List<T> 中移除与条件相匹配的元素。

此方法执行线性搜索;因此,此方法的运算复杂度是 O(n),其中 nCount

下面的代码示例演示 RemoveAll 方法以及使用 Predicate<T> 泛型委托的其他几个方法。

该示例创建一个字符串 List<T>,该列表包含 8 个恐龙名称,其中有两个名称以“saurus”结尾,分别位于位置 1 和 5。该代码示例还定义了一个名为 EndsWithSaurus 的搜索谓词方法,该方法接受一个字符串作为参数,并返回一个布尔值,指示输入的字符串是否以“saurus”结尾。

FindFindLastFindAll 方法与搜索谓词方法一起被用于搜索该列表。

RemoveAll 方法被用于移除以“saurus”结尾的所有项。该方法从头开始遍历该列表,依次将每个元素传递给 EndsWithSaurus 方法。如果 EndsWithSaurus 方法返回 true,则移除该元素。

说明注意:

在 C# 和 Visual Basic 中,不必显式创建 Predicate<string> 委托(在 Visual Basic 中为 Predicate(Of String))。这些语言会通过上下文推知正确的委托,并自动创建委托。

最后,Exists 方法验证列表中不存在以“saurus”结尾的字符串。

Windows Phone OS

受以下版本支持: 8.0

显示: