Класс Predicate
Predicate - делегат
с одним параметром типа T и результатом
bool. Им описывают условие для элемента:
подходит или нет. Часто передают в
FindAll и
другие методы коллекций.
Синтаксис
Predicate<int> check = x => x > 0;
bool res = check(5);
Пример
Давайте проверим, больше ли число нуля:
using System;
class Program
{
static void Main()
{
Predicate<int> isPositive = x => x > 0;
Console.WriteLine(isPositive(5));
}
}
Результат выполнения кода:
True
Пример
Давайте проверим длину строки через Predicate<string>:
using System;
class Program
{
static void Main()
{
Predicate<string> isLong = text => text.Length > 3;
Console.WriteLine(isLong("abcde"));
}
}
Результат выполнения кода:
True
Пример
Давайте отфильтруем список через List.FindAll:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
var nums = new List<int> {1, 2, 3, 4, 5};
Predicate<int> isEven = x => x % 2 == 0;
var res = nums.FindAll(isEven);
Console.WriteLine(res.Count);
}
}
Результат выполнения кода:
2