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