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

Array.FindIndex<T>-Methode: (T[], Predicate<T>)

 

Sucht nach einem Element, das die durch das angegebene Prädikat definierten Bedingungen erfüllt, und gibt den nullbasierten Index des ersten Vorkommens im gesamten Array zurück.

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

public static int FindIndex<T>(
	T[] array,
	Predicate<T> match
)

Parameter

array
Type: T[]

Das zu durchsuchende eindimensionale und nullbasierte Array.

match
Type: System.Predicate<T>

Das Predicate<T>, das die Bedingungen für das Element definiert, nach dem gesucht werden soll.

Rückgabewert

Type: System.Int32

Der nullbasierte Index des ersten Vorkommens eines Elements, das mit den durch match definierten Bedingungen übereinstimmt, sofern gefunden; andernfalls -1.

Typparameter

T

Der Typ der Elemente des Arrays.

Exception Condition
ArgumentNullException

array ist null.

- oder -

match ist null.

Die Array vorwärts beginnend mit dem ersten Element und endet beim letzten Element durchsucht wird.

DiePredicate<T> ist ein Delegat an eine Methode, die zurückgibt true an das Objekt übergeben sie die Bedingungen definiert, die im Delegaten übereinstimmt. Die Elemente der array einzeln übergeben werden, um die Predicate<T>.

Diese Methode ist eine O (n)-Vorgang, in dem n ist die Length von array.

Im folgenden Codebeispiel wird veranschaulicht, alle drei Überladungen, der die FindIndex generische Methode. Ein Array von Zeichenfolgen wird erstellt, 8, Dinosauriernamen enthält, von denen zwei (an Position 1 und 5) mit "Saurus" enden. Das Codebeispiel definiert auch eine Prädikat Search-Methode, die mit dem Namen EndsWithSaurus, der einen Zeichenfolgenparameter akzeptiert und einen booleschen Wert zurückgibt, der angibt, ob die Eingabezeichenfolge "Saurus" endet.

Die FindIndex<T>(T[], Predicate<T>) methodenüberladung durchläuft das Array von Anfang an und übergibt die einzelnen Elemente an die EndsWithSaurus Methode. Die Suche angehalten wird, wenn die EndsWithSaurus -Methode zurückkehrt true für das Element an der Position 1.

System_CAPS_noteHinweis

In c# und Visual Basic, ist es nicht erforderlich, erstellen Sie die Predicate<string> delegieren (Predicate(Of String) in Visual Basic) explizit. Diese Sprachen leiten den richtigen Delegaten aus Kontext und automatisch zu erstellen.

Die FindIndex<T>(T[], Int32, Predicate<T>) methodenüberladung wird verwendet, um das Array, beginnend an Position 2 und bis zum Ende des Arrays zu fortfahren zu suchen. Er findet das Element an Position 5. Schließlich die FindIndex<T>(T[], Int32, Int32, Predicate<T>) methodenüberladung dient zum Suchen des Bereichs von drei Elementen, die an Position 2 ab. Es gibt-1 zurück, da es sind keine Dinosauriernamen in diesem Bereich an, die mit "Saurus" enden.

using System;

public class Example
{
    public static void Main()
    {
        string[] dinosaurs = { "Compsognathus", 
            "Amargasaurus",   "Oviraptor",      "Velociraptor", 
            "Deinonychus",    "Dilophosaurus",  "Gallimimus", 
            "Triceratops" };

        Console.WriteLine();
        foreach(string dinosaur in dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine(
            "\nArray.FindIndex(dinosaurs, EndsWithSaurus): {0}", 
            Array.FindIndex(dinosaurs, EndsWithSaurus));

        Console.WriteLine(
            "\nArray.FindIndex(dinosaurs, 2, EndsWithSaurus): {0}",
            Array.FindIndex(dinosaurs, 2, EndsWithSaurus));

        Console.WriteLine(
            "\nArray.FindIndex(dinosaurs, 2, 3, EndsWithSaurus): {0}",
            Array.FindIndex(dinosaurs, 2, 3, EndsWithSaurus));
    }

    // Search predicate returns true if a string ends in "saurus".
    private static bool EndsWithSaurus(String s)
    {
        if ((s.Length > 5) && 
            (s.Substring(s.Length - 6).ToLower() == "saurus"))
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}

/* This code example produces the following output:

Compsognathus
Amargasaurus
Oviraptor
Velociraptor
Deinonychus
Dilophosaurus
Gallimimus
Triceratops

Array.FindIndex(dinosaurs, EndsWithSaurus): 1

Array.FindIndex(dinosaurs, 2, EndsWithSaurus): 5

Array.FindIndex(dinosaurs, 2, 3, EndsWithSaurus): -1
 */

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