A predicate delegate returns true or false for each value.

Predicate Filter

PredicateFilter.cs
using System;

class Program
{
    static void Main()
    {
        int minimum = ;
        int[] values = { 1, 3, 5, 7 };
        Func<int, bool> keep = value => value >= minimum;
        int kept = 0;
        int total = 0;

        foreach (int value in values)
        {
            if (keep(value))
            {
                kept++;
                total += value;
            }
        }

        Console.WriteLine($"minimum={minimum}");
        Console.WriteLine($"kept={kept}");
        Console.WriteLine($"total={total}");
    }
}
using System;

class Program
{
    static void Main()
    {
        int minimum = ;
        int[] values = { 1, 3, 5, 7 };
        Func<int, bool> keep = value => value >= minimum;
        int kept = 0;
        int total = 0;

        foreach (int value in values)
        {
            if (keep(value))
            {
                kept++;
                total += value;
            }
        }

        Console.WriteLine($"minimum={minimum}");
        Console.WriteLine($"kept={kept}");
        Console.WriteLine($"total={total}");
    }
}
using System;

class Program
{
    static void Main()
    {
        int minimum = ;
        int[] values = { 1, 3, 5, 7 };
        Func<int, bool> keep = value => value >= minimum;
        int kept = 0;
        int total = 0;

        foreach (int value in values)
        {
            if (keep(value))
            {
                kept++;
                total += value;
            }
        }

        Console.WriteLine($"minimum={minimum}");
        Console.WriteLine($"kept={kept}");
        Console.WriteLine($"total={total}");
    }
}
predicate A predicate is a function that answers a yes-or-no question.