(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

Array.Find<T>-Methode

Sucht nach einem Element, das die durch das angegebene Prädikat definierten Bedingungen erfüllt, und gibt das erste Vorkommen im gesamten Array zurück.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)
public static T Find<T>(
	T[] array,
	Predicate<T> match
)

Typparameter

T

Der Typ der Elemente des Arrays.

Parameter

array
Typ: T[]
Das zu durchsuchende eindimensionale und nullbasierte Array.
match
Typ: System.Predicate<T>
Das Predicate<T>, das die Bedingungen für das Element definiert, nach dem gesucht werden soll.

Rückgabewert

Typ: T
Das erste Element, das die durch das angegebene Prädikat definierten Bedingungen erfüllt, sofern vorhanden, andernfalls der Standardwert für den Typ T.
AusnahmeBedingung
ArgumentNullException

array ist null.

- oder -

match ist null.

Predicate<T> ist ein Delegat für eine Methode, die true zurückgibt, wenn das übergebene Objekt die im Delegaten definierten Bedingungen erfüllt. Die Elemente von array werden einzeln an Predicate<T> übergeben, und Array wird in Vorwärtsrichtung vom ersten Element bis zum letzten Element durchlaufen. Die Verarbeitung wird angehalten, sobald eine Übereinstimmung gefunden wird.

Diese Methode ist eine O(n)-Operation, wobei n die Length von array ist.

Im folgenden Codebeispiel wird ein Predicate<T>-Delegat mit der generischen Find<T>-Methode verwendet, um ein Array von Point-Strukturen zu durchsuchen. Die Methode, die der Delegat darstellt, ProductGT10, gibt true zurück, wenn das Produkt des X-Felds und des Y-Felds größer als 100.000 ist. Die Find<T>-Methode ruft den Delegaten zu jedem Element des Arrays auf und gibt den ersten Punkt zurück, der die Testbedingung erfüllt.

HinweisHinweis

Benutzer von Visual Basic und C# müssen den Delegaten nicht explizit erstellen und das Typargument der generischen Methode nicht angeben. Die Compiler bestimmen die notwendigen Typen von den angegebenen Methodenargumenten.


using System;
using System.Drawing;

public class Example
{
    public static void Main()
    {
        // Create an array of five Point structures.
        Point[] points = { new Point(100, 200), 
            new Point(150, 250), new Point(250, 375), 
            new Point(275, 395), new Point(295, 450) };

        // To find the first Point structure for which X times Y 
        // is greater than 100000, pass the array and a delegate
        // that represents the ProductGT10 method to the static 
        // Find method of the Array class. 
        Point first = Array.Find(points, ProductGT10);

        // Note that you do not need to create the delegate 
        // explicitly, or to specify the type parameter of the 
        // generic method, because the C# compiler has enough
        // context to determine that information for you.

        // Display the first structure found.
        Console.WriteLine("Found: X = {0}, Y = {1}", first.X, first.Y);
    }

    // This method implements the test condition for the Find
    // method.
    private static bool ProductGT10(Point p)
    {
        if (p.X * p.Y > 100000)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}

/* This code example produces the following output:

Found: X = 275, Y = 395
 */


.NET Framework

Unterstützt in: 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.