Метод FindAll
Статический метод FindAll класса
Array
создаёт новый массив с элементами, для которых
предикат вернул true. Исходный массив
не меняется. Первый подходящий элемент
даёт Find.
Синтаксис
T[] matches = Array.FindAll(array, match);
Пример
Давайте соберём все чётные числа:
using System;
class Program
{
static void Main()
{
int[] nums = {1, 2, 3, 4, 5};
int[] evens = Array.FindAll(nums, x => x % 2 == 0);
Console.WriteLine(string.Join(" ", evens));
}
}
Результат выполнения кода:
"2 4"
Пример
Давайте отфильтруем односимвольные строки:
using System;
class Program
{
static void Main()
{
string[] items = {"aa", "b", "cde", "d", "e"};
string[] shortItems = Array.FindAll(items, s => s.Length == 1);
Console.WriteLine(string.Join(" ", shortItems));
}
}
Результат выполнения кода:
"b d e"
Пример
Давайте проверим пустой результат фильтра:
using System;
class Program
{
static void Main()
{
int[] nums = {1, 2, 3, 4, 5};
int[] big = Array.FindAll(nums, x => x > 9);
Console.WriteLine(big.Length);
}
}
Результат выполнения кода:
0
Смотрите также
-
метод
Find,
который возвращает первый подходящий элемент -
метод
Exists,
который проверяет наличие по предикату -
метод
ConvertAll,
который преобразует каждый элемент -
метод
FindAll,
который фильтрует списокList<T>