268 votes

Prédicats délégués en c#

Pouvez vous m’expliquer ;

  • Ce qui est délégué Predicate ?
  • Où devrions-nous utiliser prédicats ?
  • Les meilleures pratiques sur les prédicats ?

Code source descriptif sera apprécié,

Merci pour toutes réponses !

330voto

Andrew Hare Points 159332

Un prédicat est une fonction qui retourne true ou false. Un prédicat délégué est une référence à un prédicat.

Donc, fondamentalement, un prédicat délégué est une référence à une fonction qui retourne true ou false. Les prédicats sont très utiles pour le filtrage d'une liste de valeurs - là en est un exemple.

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;
    }
}

Maintenant, si vous êtes à l'aide de C# 3, vous pouvez utiliser une lambda pour représenter le prédicat dans un nettoyant de la mode:

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);
    }
}

81voto

WestDiscGolf Points 3335

Reliant réponse Andrew en ce qui concerne les #2 et #3 de c... vous pouvez également effectuer ces tâches inline pour un hors fonction de recherche (voir ci-dessous).

J’espère que cela aide.

11voto

Adam Carr Points 1858

Juste un délégué qui retourne une valeur booléenne. Il est très utilisé dans les listes de filtrage, mais peut être utilisé partout où vous le souhaitez.

9voto

LukeH Points 110965

Il y a un bon article sur les prédicats ici, bien qu’il soit de la. NET2 ère, donc il n’y a aucune mention d’expressions lambda là-bas.

5voto

lukaszk Points 151

Les méthodes de la recherche axée sur le prédicat permettent une méthode délégué ou une expression lambda à décider si un élément donné est un « match ». Un prédicat est simplement un délégué accepte un objet et retourner true ou false : délégué public bool Predicate (objet T) ;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X