1. ホーム
  2. c#

[解決済み】C#の述語デリゲート

2022-04-02 13:29:04

質問

説明してください。

  • Predicate Delegateとは何ですか?
  • 述語はどこで使うべき?
  • 述語を使用する際のベストプラクティスは?

ソースコードを記述していただけるとありがたいです。

解決方法は?

述語は true または false . 述語デリゲートは、述語への参照である。

つまり、基本的に述語デリゲートは、述語を返す関数への参照です。 true または false . 述語は、値のリストをフィルタリングするのに非常に便利です - 以下に例を示します。

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<int> list = new List<int> { 1, 2, 3 };

        Predicate<int> predicate = new Predicate<int>(greaterThanTwo);

        List<int> newList = list.FindAll(predicate);
    }

    static bool greaterThanTwo(int arg)
    {
        return arg > 2;
    }
}

C# 3を使用している場合は、ラムダを使用して述語をよりきれいに表現することができます。

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<int> list = new List<int> { 1, 2, 3 };

        List<int> newList = list.FindAll(i => i > 2);
    }
}