情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

List<T>.RemoveAll メソッド

2013/12/12

指定した述語によって定義される条件に一致するすべての要素を削除します。

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 です。

Predicate<T> 汎用デリゲートを使用する RemoveAll メソッドと他のいくつかのメソッドを使用したコード例を次に示します。

8 つの恐竜の名前で、その内の 2 つ (1 番目と 5 番目の位置) は "saurus" で終わる名前が格納された、文字列の List<T> が作成されます。このコード例では、EndsWithSaurus という名前の検索述語のメソッドも定義されます。このメソッドは文字列パラメーターを受け取り、入力文字列が "saurus" で終わっているかどうかを示すブール値を返します。

FindFindLast、および FindAll の各メソッドを使用し、検索述語のメソッドを使用してリストを検索します。

RemoveAll メソッドを使用して、"saurus" で終わるすべてのエントリを削除します。このメソッドはリストを先頭から走査し、次に各要素を EndsWithSaurus メソッドに渡します。EndsWithSaurus メソッドが true を返す場合、要素は削除されます。

メモメモ:

C# と Visual Basic では、Predicate<string> デリゲート (Visual Basic では Predicate(Of String)) を明示的に作成する必要はありません。これらの言語はコンテキストから正しいデリゲートを推測し、自動的に作成します。

最後に、Exists メソッドで、リスト内に "saurus" で終わる文字列が存在しないことを確認します。

Windows Phone OS

サポート: 8.0

表示: