Array.FindIndex Methode

Definition

Sucht nach einem Element, das den von einem angegebenen Prädikat definierten Bedingungen entspricht, und gibt den nullbasierten Index des ersten Vorkommens innerhalb eines Array oder eines Teils davon zurück.

Überlädt

Name Beschreibung
FindIndex<T>(T[], Predicate<T>)

Sucht nach einem Element, das den vom angegebenen Prädikat definierten Bedingungen entspricht, und gibt den nullbasierten Index des ersten Vorkommens innerhalb des gesamten ArrayZurück.

FindIndex<T>(T[], Int32, Predicate<T>)

Sucht nach einem Element, das den vom angegebenen Prädikat definierten Bedingungen entspricht, und gibt den nullbasierten Index des ersten Vorkommens innerhalb des Elementbereichs zurück Array , der sich vom angegebenen Index bis zum letzten Element erstreckt.

FindIndex<T>(T[], Int32, Int32, Predicate<T>)

Sucht nach einem Element, das den vom angegebenen Prädikat definierten Bedingungen entspricht, und gibt den nullbasierten Index des ersten Vorkommens innerhalb des Elementbereichs zurück Array , der am angegebenen Index beginnt und die angegebene Anzahl von Elementen enthält.

Beispiele

Im folgenden Codebeispiel werden alle drei Überladungen der FindIndex generischen Methode veranschaulicht. Es wird ein Array von Zeichenfolgen erstellt, das 8 Dinosauriernamen enthält, von denen zwei (an den Positionen 1 und 5) mit "saurus" enden. Im Codebeispiel wird auch eine Suchprädikatmethode namens EndsWithSaurusdefiniert, die einen Zeichenfolgenparameter akzeptiert und einen booleschen Wert zurückgibt, der angibt, ob die Eingabezeichenfolge in "saurus" endet.

Die FindIndex<T>(T[], Predicate<T>) Methodenüberladung durchläuft das Array von Anfang an und übergibt jedes Element wiederum an die EndsWithSaurus Methode. Die Suche wird beendet, wenn die EndsWithSaurus Methode für das Element an Position 1 zurückgibt true .

Note

In C#, F# und Visual Basic ist es nicht erforderlich, den Predicate<string> Delegat (Predicate(Of String) in Visual Basic) explizit zu erstellen. In diesen Sprachen wird der richtige Delegat aus dem Kontext abgeleitet und automatisch erstellt.

Die FindIndex<T>(T[], Int32, Predicate<T>) Methodenüberladung wird verwendet, um das Array ab Position 2 zu durchsuchen und das Ende des Arrays fortzusetzen. Es findet das Element an Position 5. Schließlich wird die FindIndex<T>(T[], Int32, Int32, Predicate<T>) Methodenüberladung verwendet, um den Bereich von drei Elementen zu durchsuchen, die an Position 2 beginnen. Es gibt -1 zurück, da es keine Dinosauriernamen in diesem Bereich gibt, 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
 */
open System

// Search predicate returns true if a string ends in "saurus".
let endsWithSaurus (s: string) =
    s.Length > 5 && s.Substring(s.Length - 6).ToLower() = "saurus"

let dinosaurs =
    [| "Compsognathus"; "Amargasaurus"
       "Oviraptor"; "Velociraptor"
       "Deinonychus"; "Dilophosaurus"
       "Gallimimus"; "Triceratops" |]

printfn ""
for dino in dinosaurs do
    printfn $"{dino}"

Array.FindIndex(dinosaurs, endsWithSaurus)
|> printfn "\nArray.FindIndex(dinosaurs, EndsWithSaurus): %i"

Array.FindIndex(dinosaurs, 2, endsWithSaurus)
|> printfn "\nArray.FindIndex(dinosaurs, 2, EndsWithSaurus): %i"

Array.FindIndex(dinosaurs, 2, 3, endsWithSaurus)
|> printfn "\nArray.FindIndex(dinosaurs, 2, 3, EndsWithSaurus): %i"


// 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
Public Class Example

    Public Shared Sub Main()

        Dim dinosaurs() As String = { "Compsognathus", _
            "Amargasaurus",   "Oviraptor",      "Velociraptor", _
            "Deinonychus",    "Dilophosaurus",  "Gallimimus", _
            "Triceratops" }

        Console.WriteLine()
        For Each dinosaur As String In dinosaurs
            Console.WriteLine(dinosaur)
        Next

        Console.WriteLine(vbLf & _
            "Array.FindIndex(dinosaurs, AddressOf EndsWithSaurus): {0}", _
            Array.FindIndex(dinosaurs, AddressOf EndsWithSaurus))

        Console.WriteLine(vbLf & _
            "Array.FindIndex(dinosaurs, 2, AddressOf EndsWithSaurus): {0}", _
            Array.FindIndex(dinosaurs, 2, AddressOf EndsWithSaurus))

        Console.WriteLine(vbLf & _
            "Array.FindIndex(dinosaurs, 2, 3, AddressOf EndsWithSaurus): {0}", _
            Array.FindIndex(dinosaurs, 2, 3, AddressOf EndsWithSaurus))

    End Sub

    ' Search predicate returns true if a string ends in "saurus".
    Private Shared Function EndsWithSaurus(ByVal s As String) _
        As Boolean

        ' AndAlso prevents evaluation of the second Boolean
        ' expression if the string is so short that an error
        ' would occur.
        If (s.Length > 5) AndAlso _
            (s.Substring(s.Length - 6).ToLower() = "saurus") Then
            Return True
        Else
            Return False
        End If
    End Function
End Class

' This code example produces the following output:
'
'Compsognathus
'Amargasaurus
'Oviraptor
'Velociraptor
'Deinonychus
'Dilophosaurus
'Gallimimus
'Triceratops
'
'Array.FindIndex(dinosaurs, AddressOf EndsWithSaurus): 1
'
'Array.FindIndex(dinosaurs, 2, AddressOf EndsWithSaurus): 5
'
'Array.FindIndex(dinosaurs, 2, 3, AddressOf EndsWithSaurus): -1

FindIndex<T>(T[], Predicate<T>)

Quelle:
Array.cs
Quelle:
Array.cs
Quelle:
Array.cs
Quelle:
Array.cs
Quelle:
Array.cs

Sucht nach einem Element, das den vom angegebenen Prädikat definierten Bedingungen entspricht, und gibt den nullbasierten Index des ersten Vorkommens innerhalb des gesamten ArrayZurück.

public:
generic <typename T>
 static int FindIndex(cli::array <T> ^ array, Predicate<T> ^ match);
public static int FindIndex<T>(T[] array, Predicate<T> match);
static member FindIndex : 'T[] * Predicate<'T> -> int
Public Shared Function FindIndex(Of T) (array As T(), match As Predicate(Of T)) As Integer

Typparameter

T

Der Typ der Elemente des Arrays.

Parameter

array
T[]

Die eindimensionale, nullbasierte Array Suche.

match
Predicate<T>

Das Predicate<T> definiert die Bedingungen des elements, nach dem gesucht werden soll.

Gibt zurück

Der nullbasierte Index des ersten Vorkommens eines Elements, das den von match, falls gefundenen Bedingungen entspricht, andernfalls -1.

Ausnahmen

array ist null.

-oder-

match ist null.

Hinweise

Die Array Suche erfolgt vorwärts beginnend mit dem ersten Element und endet am letzten Element.

Dies Predicate<T> ist ein Delegat an eine Methode, die zurückgibt true , wenn das an sie übergebene Objekt den in der Stellvertretung definierten Bedingungen entspricht. Die Elemente werden array einzeln an die Predicate<T>.

Bei dieser Methode handelt es sich um einen O()-Vorgang, bei dem n es sich um einen n OLength(array)-Vorgang handelt.

Weitere Informationen

Gilt für:

FindIndex<T>(T[], Int32, Predicate<T>)

Quelle:
Array.cs
Quelle:
Array.cs
Quelle:
Array.cs
Quelle:
Array.cs
Quelle:
Array.cs

Sucht nach einem Element, das den vom angegebenen Prädikat definierten Bedingungen entspricht, und gibt den nullbasierten Index des ersten Vorkommens innerhalb des Elementbereichs zurück Array , der sich vom angegebenen Index bis zum letzten Element erstreckt.

public:
generic <typename T>
 static int FindIndex(cli::array <T> ^ array, int startIndex, Predicate<T> ^ match);
public static int FindIndex<T>(T[] array, int startIndex, Predicate<T> match);
static member FindIndex : 'T[] * int * Predicate<'T> -> int
Public Shared Function FindIndex(Of T) (array As T(), startIndex As Integer, match As Predicate(Of T)) As Integer

Typparameter

T

Der Typ der Elemente des Arrays.

Parameter

array
T[]

Die eindimensionale, nullbasierte Array Suche.

startIndex
Int32

Der nullbasierte Startindex der Suche.

match
Predicate<T>

Das Predicate<T> definiert die Bedingungen des elements, nach dem gesucht werden soll.

Gibt zurück

Der nullbasierte Index des ersten Vorkommens eines Elements, das den von match, falls gefundenen Bedingungen entspricht, andernfalls -1.

Ausnahmen

array ist null.

-oder-

match ist null.

startIndex ist kleiner als Null oder größer als die Länge der array.

Hinweise

Die Array Suche beginnt mit startIndex dem letzten Element und endet mit dem letzten Element.

Dies Predicate<T> ist ein Delegat an eine Methode, die zurückgibt true , wenn das an sie übergebene Objekt den in der Stellvertretung definierten Bedingungen entspricht. Die Elemente werden array einzeln an die Predicate<T>.

Diese Methode ist ein O(n)-Vorgang, wobei n die Anzahl der Elemente von startIndex bis zum Ende von array.

Weitere Informationen

Gilt für:

FindIndex<T>(T[], Int32, Int32, Predicate<T>)

Quelle:
Array.cs
Quelle:
Array.cs
Quelle:
Array.cs
Quelle:
Array.cs
Quelle:
Array.cs

Sucht nach einem Element, das den vom angegebenen Prädikat definierten Bedingungen entspricht, und gibt den nullbasierten Index des ersten Vorkommens innerhalb des Elementbereichs zurück Array , der am angegebenen Index beginnt und die angegebene Anzahl von Elementen enthält.

public:
generic <typename T>
 static int FindIndex(cli::array <T> ^ array, int startIndex, int count, Predicate<T> ^ match);
public static int FindIndex<T>(T[] array, int startIndex, int count, Predicate<T> match);
static member FindIndex : 'T[] * int * int * Predicate<'T> -> int
Public Shared Function FindIndex(Of T) (array As T(), startIndex As Integer, count As Integer, match As Predicate(Of T)) As Integer

Typparameter

T

Der Typ der Elemente des Arrays.

Parameter

array
T[]

Die eindimensionale, nullbasierte Array Suche.

startIndex
Int32

Der nullbasierte Startindex der Suche.

count
Int32

Die Anzahl der zu durchsuchenden Elemente im Abschnitt.

match
Predicate<T>

Das Predicate<T> definiert die Bedingungen des elements, nach dem gesucht werden soll.

Gibt zurück

Der nullbasierte Index des ersten Vorkommens eines Elements, das den von match, falls gefundenen Bedingungen entspricht, andernfalls -1.

Ausnahmen

array ist null.

-oder-

match ist null.

startIndex ist kleiner als Null oder größer als die Länge der array.

-oder-

count ist kleiner als 0 (null).

-oder-

startIndex und count geben Sie keinen gültigen Abschnitt in array.

Hinweise

Die Array Suche beginnt ab und startIndex endet mit startIndex plus count minus 1, wenn count größer als 0 ist.

Dies Predicate<T> ist ein Delegat an eine Methode, die zurückgibt true , wenn das an sie übergebene Objekt den in der Stellvertretung definierten Bedingungen entspricht. Die Elemente werden array einzeln an die Predicate<T>.

Bei dieser Methode handelt es sich um einen O()-Vorgang, wobei n es sich um einen O(n)-Vorgang handeltcount.

Weitere Informationen

Gilt für: