Прочитать на английском

Поделиться через


HashSet<T>.RemoveWhere(Predicate<T>) Метод

Определение

Удаляет все элементы, удовлетворяющие условиям, которые были определены указанным предикатом из коллекции HashSet<T>.

public int RemoveWhere (Predicate<T> match);

Параметры

match
Predicate<T>

Делегат Predicate<T>, определяющий условия удаления элемента.

Возвращаемое значение

Количество элементов, удаленных из коллекции HashSet<T>.

Исключения

match имеет значение null.

Примеры

В следующем примере показано, как удалить значения из HashSet<T> коллекции с помощью Remove метода . В этом примере все нечетные целые числа удаляются из HashSet<T> коллекции, как указано делегатом match .

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

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