HashSet<T>.RemoveWhere(Predicate<T>) HashSet<T>.RemoveWhere(Predicate<T>) HashSet<T>.RemoveWhere(Predicate<T>) HashSet<T>.RemoveWhere(Predicate<T>) Method

Определение

Удаляет все элементы, удовлетворяющие условиям, которые были определены указанным предикатом из коллекции HashSet<T>.Removes all elements that match the conditions defined by the specified predicate from a HashSet<T> collection.

public:
 int RemoveWhere(Predicate<T> ^ match);
public int RemoveWhere (Predicate<T> match);
member this.RemoveWhere : Predicate<'T> -> int
Public Function RemoveWhere (match As Predicate(Of T)) As Integer

Параметры

match
Predicate<T> Predicate<T> Predicate<T> Predicate<T>

Делегат Predicate<T>, определяющий условия удаления элемента.The Predicate<T> delegate that defines the conditions of the elements to remove.

Возвраты

Количество элементов, удаленных из коллекции HashSet<T>.The number of elements that were removed from the HashSet<T> collection.

Исключения

Примеры

В следующем примере показано, как удалить значения из HashSet<T> коллекции Remove с помощью метода.The following example demonstrates how to remove values from a HashSet<T> collection using the Remove method. В этом примере все нечетные целые числа удаляются из HashSet<T> коллекции, как указано в match делегате.In this example, all odd integers are removed from the HashSet<T> collection as specified by the match delegate.

using System;
using System.Collections.Generic;

class Example
{
    static void Main()
    {
        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);
    }

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

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

        Console.WriteLine(" }");
    }
}
// This example display 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 }
Imports System.Collections.Generic

Module Example
    Public Sub Main()
        Dim numbers As New HashSet(Of Integer)()

        For i As Integer = 0 To 19
            numbers.Add(i)
        Next 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(AddressOf 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) Then
            numbers.Remove(0)
        End If
        Console.Write("numbers contains {0} elements: ", numbers.Count)
        DisplaySet(numbers)
    End Sub

    Private Function IsOdd(ByVal i As Integer) As Boolean
        Return ((i Mod 2) = 1)
    End Function

    Private Sub DisplaySet(ByVal coll As HashSet(Of Integer))
        Console.Write("{")
        For Each i As Integer In coll
            Console.Write(" {0}", i)
        Next
        Console.WriteLine(" }")
    End Sub
End Module
' The 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 }

Комментарии

Вызов этого метода является операцией On(), где n имеет Count.Calling this method is an O(n) operation, where n is Count.

Применяется к