HashSet<T>.RemoveWhere(Predicate<T>) メソッド

定義

指定の述語によって定義された条件に一致するすべての要素を HashSet<T> コレクションから削除します。

C#
public int RemoveWhere (Predicate<T> match);

パラメーター

match
Predicate<T>

削除する要素の条件を定義する Predicate<T> デリゲート。

戻り値

HashSet<T> コレクションから削除された要素数。

例外

matchnullです。

次の例では、 メソッドを使用してコレクションから値を HashSet<T> 削除する方法を Remove 示します。 この例では、デリゲートでmatch指定されているように、すべての奇数整数がHashSet<T>コレクションから削除されます。

C#
HashSet<int> numbers = new HashSet<int>();

for (int i = 0; i < 20; i++) {
    numbers.Add(i);
}

// Display all the numbers in the hash table.
Console.Write("numbers contains {0} elements: ", numbers.Count);
DisplaySet(numbers);

// Remove all odd numbers.
numbers.RemoveWhere(IsOdd);
Console.Write("numbers contains {0} elements: ", numbers.Count);
DisplaySet(numbers);

// Check if the hash table contains 0 and, if so, remove it.
if (numbers.Contains(0)) {
    numbers.Remove(0);
}
Console.Write("numbers contains {0} elements: ", numbers.Count);
DisplaySet(numbers);

bool IsOdd(int i)
{
    return ((i % 2) == 1);
}

void DisplaySet(HashSet<int> set)
{
    Console.Write("{");
    foreach (int i in set)
        Console.Write(" {0}", i);

    Console.WriteLine(" }");
}

// This example displays the following output:
//    numbers contains 20 elements: { 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 }
//    numbers contains 10 elements: { 0 2 4 6 8 10 12 14 16 18 }
//    numbers contains 9 elements: { 2 4 6 8 10 12 14 16 18 }

注釈

このメソッドの呼び出しは O(n) 操作です。ここで n 、 は Countです。

適用対象

製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0