Метод RemoveAll
Метод RemoveAll класса
List<T> принимает
предикат Predicate<T> и удаляет
каждый элемент, для которого условие истинно.
Возвращает число удалённых элементов.
Синтаксис
int removed = list.RemoveAll(match);
Пример
Давайте удалим все чётные числа:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> nums = new List<int> {1, 2, 3, 4, 5};
int res = nums.RemoveAll(x => x % 2 == 0);
Console.WriteLine(res);
Console.WriteLine(string.Join(" ", nums));
}
}
Результат выполнения кода:
2
1 3 5
Пример
Давайте удалим элементы больше 3:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> nums = new List<int> {1, 2, 3, 4, 5};
nums.RemoveAll(x => x > 3);
Console.WriteLine(string.Join(" ", nums));
}
}
Результат выполнения кода:
1 2 3
Пример
Давайте удалим односимвольные строки:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<string> items = new List<string> {"a", "bb", "c", "dd", "e"};
items.RemoveAll(s => s.Length == 1);
Console.WriteLine(string.Join(" ", items));
}
}
Результат выполнения кода:
bb dd
Пример
Давайте проверим Count после RemoveAll:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> nums = new List<int> {1, 2, 3, 4, 5};
nums.RemoveAll(x => x == 5);
Console.WriteLine(nums.Count);
}
}
Результат выполнения кода:
4
Смотрите также
-
метод
Remove,
который удаляет первое совпадение -
метод
FindAll,
который находит элементы по условию -
метод
TrueForAll,
который проверяет условие на всех -
метод
Exists,
который проверяет наличие по условию