Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Predicate<'T>-Delegat

 

Veröffentlicht: Oktober 2016

Stellt die Methode dar, die einen Satz von Kriterien definiert und ermittelt, ob das angegebene Objekt diese Kriterien erfüllt.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

type Predicate<'T> = 
    delegate of 
        obj:'T -> bool

Parameter

obj
Type: T

Das Objekt, mit dem innerhalb der durch diesen Delegaten dargestellten Methode definierten Kriterien verglichen werden soll.

Rückgabewert

Type: System.Boolean

true Wenn obj innerhalb der von diesem Delegaten; dargestellten Methode definierten Kriterien erfüllt, andernfalls false.

Typparameter

inT

Der Typ der zu vergleichende Objekt.

Dieser Delegat wird von mehreren Methoden der verwendet den Array und List<'T> Klassen, die die Suche nach Elementen in der Auflistung.

In der Regel die Predicate<'T> Delegat durch einen Lambda-Ausdruck dargestellt wird. Da lokal gültigen Variablen des Lambda-Ausdrucks verfügbar sind, ist es einfach, eine Bedingung zu testen, die nicht genau zum Zeitpunkt der Kompilierung bekannt ist. Dies wird im folgenden Beispiel, das definiert, simuliert eine HockeyTeam Klasse enthält Informationen zu nationalen "hockey" Sportliga Team und das Jahr, in dem sie gegründet wurde. Im Beispiel definiert ein Array von ganzzahligen Werten, die Jahre darstellen, und nach dem Zufallsprinzip ein Element des Arrays, foundedBeforeYear, dies ist eine Variable, die lokal im Beispiel bezieht Main Methode. Da lokal gültigen Variablen einen Lambda-Ausdruck zur Verfügung stehen, wird der Lambda-Ausdruck übergeben, auf die List<'T>.FindAll Methode zurückgeben wird ein HockeyTeam -Objekt für jedes Team, die am oder vor diesem Jahr gegründet.

Derzeit ist kein Code Beispiel verfügbar, oder die Sprache wird nicht unterstützt.

Im folgenden Codebeispiel wird ein Predicate<'T> mit Delegieren der Array.Find<'T> -Methode zum Durchsuchen eines Arrays von Point Strukturen. Im Beispiel werden explizit definiert eine Predicate<'T> Delegaten mit dem Namen predicate und weist es eine Methode namens FindPoints zurückgibt true Wenn das Produkt der Point.X und Point.Y Felder ist größer als 100.000. Beachten Sie, dass es üblich, einen Lambda-Ausdruck verwenden, anstatt einen Delegaten vom Typ explizit definieren Predicate<'T>, wie das zweite Beispiel veranschaulicht.

Derzeit ist kein Code Beispiel verfügbar, oder die Sprache wird nicht unterstützt.

Im folgende Beispiel wird mit dem vorherigen Beispiel identisch, außer dass er einen Lambda-Ausdruck verwendet, um darzustellen die Predicate<'T> delegieren. Jedes Element der points Array an den Lambda-Ausdruck übergeben wird, bis der Ausdruck ein Element gefunden wird, die die Suchkriterien entsprechen. In diesem Fall der Lambda-Ausdruck gibt true ist das Produkt aus den Feldern X und Y größer als 100.000.

Derzeit ist kein Code Beispiel verfügbar, oder die Sprache wird nicht unterstützt.

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 2.0
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: