Array.FindIndex Methode

Definition

Sucht nach einem Element, das die durch ein angegebenes Prädikat definierten Bedingungen erfüllt, und gibt den nullbasierten Index des ersten Vorkommens in einem Array oder einem Teil davon zurück.Searches for an element that matches the conditions defined by a specified predicate, and returns the zero-based index of the first occurrence within an Array or a portion of it.

Überlädt

FindIndex<T>(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.Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the entire Array.

FindIndex<T>(T[], Int32, 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 innerhalb des Bereichs von Elementen im Array zurück, der vom angegebenen Index bis zum letzten Element reicht.Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the Array that extends from the specified index to the last element.

FindIndex<T>(T[], Int32, Int32, 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 innerhalb des Bereichs von Elementen im Array zurück, der am angegebenen Index beginnt und die angegebene Anzahl von Elementen umfasst.Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the Array that starts at the specified index and contains the specified number of elements.

FindIndex<T>(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.Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the entire Array.

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.The type of the elements of the array.

Parameter

array
T[]

Das zu durchsuchende eindimensionale und nullbasierte Array.The one-dimensional, zero-based Array to search.

match
Predicate<T>

Das Predicate<T>, das die Bedingungen für das Element definiert, nach dem gesucht werden soll.The Predicate<T> that defines the conditions of the element to search for.

Gibt zurück

Der nullbasierte Index des ersten Vorkommens eines Elements, das mit den durch match definierten Bedingungen übereinstimmt, sofern gefunden; andernfalls -1.The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, -1.

Ausnahmen

array ist nullarray is null.

- oder --or- match ist nullmatch is null.

Beispiele

Im folgenden Codebeispiel werden alle drei über Ladungen der FindIndex generischen-Methode veranschaulicht.The following code example demonstrates all three overloads of the FindIndex generic method. Ein Array von Zeichen folgen wird erstellt, das acht Dinosaurier Namen enthält, von denen zwei (an den Positionen 1 und 5) mit "saurus" enden.An array of strings is created, containing 8 dinosaur names, two of which (at positions 1 and 5) end with "saurus". Das Codebeispiel definiert auch eine Such Prädikat Methode mit dem Namen EndsWithSaurus, die einen Zeichen folgen Parameter annimmt und einen booleschen Wert zurückgibt, der angibt, ob die Eingabe Zeichenfolge auf "saurus" endet.The code example also defines a search predicate method named EndsWithSaurus, which accepts a string parameter and returns a Boolean value indicating whether the input string ends in "saurus".

Die FindIndex<T>(T[], Predicate<T>)-Methoden Überladung durchläuft das Array von Anfang an, wobei jedes Element wiederum an die EndsWithSaurus-Methode übergeben wird.The FindIndex<T>(T[], Predicate<T>) method overload traverses the array from the beginning, passing each element in turn to the EndsWithSaurus method. Die Suche wird beendet, wenn die EndsWithSaurus-Methode true für das Element an Position 1 zurückgibt.The search stops when the EndsWithSaurus method returns true for the element at position 1.

Hinweis

In C# und Visual Basic muss der Predicate<string> Delegat (Predicate(Of String) in Visual Basic) nicht explizit erstellt werden.In C# and Visual Basic, it is not necessary to create the Predicate<string> delegate (Predicate(Of String) in Visual Basic) explicitly. Diese Sprachen ableiten den korrekten Delegaten aus dem Kontext und erstellen ihn automatisch.These languages infer the correct delegate from context and create it automatically.

Die FindIndex<T>(T[], Int32, Predicate<T>)-Methoden Überladung wird verwendet, um das Array beginnend an Position 2 zu durchsuchen und bis zum Ende des Arrays fortzufahren.The FindIndex<T>(T[], Int32, Predicate<T>) method overload is used to search the array beginning at position 2 and continuing to the end of the array. Es findet das-Element an Position 5.It finds the element at position 5. Zum Schluss wird die FindIndex<T>(T[], Int32, Int32, Predicate<T>)-Methoden Überladung verwendet, um den Bereich von drei Elementen zu durchsuchen, beginnend an Position 2.Finally, the FindIndex<T>(T[], Int32, Int32, Predicate<T>) method overload is used to search the range of three elements beginning at position 2. Sie gibt-1 zurück, da in diesem Bereich keine Dinosaurier Namen vorhanden sind, die mit "saurus" enden.It returns -1 because there are no dinosaur names in that range that end with "saurus".

using namespace System;

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

void main()
{
    array<String^>^ dinosaurs = { "Compsognathus", 
        "Amargasaurus",   "Oviraptor",      "Velociraptor", 
        "Deinonychus",    "Dilophosaurus",  "Gallimimus", 
        "Triceratops" };

    Console::WriteLine();
    for each(String^ dinosaur in dinosaurs )
    {
        Console::WriteLine(dinosaur);
    }

    Console::WriteLine("\nArray::FindIndex(dinosaurs, EndsWithSaurus): {0}", 
        Array::FindIndex(dinosaurs, gcnew Predicate<String^>(EndsWithSaurus)));

    Console::WriteLine("\nArray::FindIndex(dinosaurs, 2, EndsWithSaurus): {0}",
        Array::FindIndex(dinosaurs, 2, gcnew Predicate<String^>(EndsWithSaurus)));

    Console::WriteLine("\nArray::FindIndex(dinosaurs, 2, 3, EndsWithSaurus): {0}",
        Array::FindIndex(dinosaurs, 2, 3, gcnew Predicate<String^>(EndsWithSaurus)));
}

/* 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
 */
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
 */
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

Hinweise

Die Array wird nach vorne durchsucht, beginnend beim ersten Element und endet beim letzten Element.The Array is searched forward starting at the first element and ending at the last element.

Der Predicate<T> ist ein Delegat für eine Methode, die true zurückgibt, wenn das an Sie übergebenen Objekt mit den im Delegaten definierten Bedingungen übereinstimmt.The Predicate<T> is a delegate to a method that returns true if the object passed to it matches the conditions defined in the delegate. Die Elemente array werden einzeln an die Predicate<T>übermittelt.The elements of array are individually passed to the Predicate<T>.

Bei dieser Methode handelt es sich um einen O (n)-Vorgang, bei dem n der Length von arrayist.This method is an O(n) operation, where n is the Length of array.

Siehe auch

FindIndex<T>(T[], Int32, 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 innerhalb des Bereichs von Elementen im Array zurück, der vom angegebenen Index bis zum letzten Element reicht.Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the Array that extends from the specified index to the last element.

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.The type of the elements of the array.

Parameter

array
T[]

Das zu durchsuchende eindimensionale und nullbasierte Array.The one-dimensional, zero-based Array to search.

startIndex
Int32

Der nullbasierte Startindex für die Suche.The zero-based starting index of the search.

match
Predicate<T>

Das Predicate<T>, das die Bedingungen für das Element definiert, nach dem gesucht werden soll.The Predicate<T> that defines the conditions of the element to search for.

Gibt zurück

Der nullbasierte Index des ersten Vorkommens eines Elements, das mit den durch match definierten Bedingungen übereinstimmt, sofern gefunden; andernfalls -1.The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, -1.

Ausnahmen

array ist nullarray is null.

- oder --or- match ist nullmatch is null.

startIndex liegt außerhalb des Bereichs der gültigen Indizes für array.startIndex is outside the range of valid indexes for array.

Beispiele

Im folgenden Codebeispiel werden alle drei über Ladungen der FindIndex generischen-Methode veranschaulicht.The following code example demonstrates all three overloads of the FindIndex generic method. Ein Array von Zeichen folgen wird erstellt, das acht Dinosaurier Namen enthält, von denen zwei (an den Positionen 1 und 5) mit "saurus" enden.An array of strings is created, containing 8 dinosaur names, two of which (at positions 1 and 5) end with "saurus". Das Codebeispiel definiert auch eine Such Prädikat Methode mit dem Namen EndsWithSaurus, die einen Zeichen folgen Parameter annimmt und einen booleschen Wert zurückgibt, der angibt, ob die Eingabe Zeichenfolge auf "saurus" endet.The code example also defines a search predicate method named EndsWithSaurus, which accepts a string parameter and returns a Boolean value indicating whether the input string ends in "saurus".

Die FindIndex<T>(T[], Predicate<T>)-Methoden Überladung durchläuft das Array von Anfang an, wobei jedes Element wiederum an die EndsWithSaurus-Methode übergeben wird.The FindIndex<T>(T[], Predicate<T>) method overload traverses the array from the beginning, passing each element in turn to the EndsWithSaurus method. Die Suche wird beendet, wenn die EndsWithSaurus-Methode true für das Element an Position 1 zurückgibt.The search stops when the EndsWithSaurus method returns true for the element at position 1.

Hinweis

In C# und Visual Basic muss der Predicate<string> Delegat (Predicate(Of String) in Visual Basic) nicht explizit erstellt werden.In C# and Visual Basic, it is not necessary to create the Predicate<string> delegate (Predicate(Of String) in Visual Basic) explicitly. Diese Sprachen ableiten den korrekten Delegaten aus dem Kontext und erstellen ihn automatisch.These languages infer the correct delegate from context and create it automatically.

Die FindIndex<T>(T[], Int32, Predicate<T>)-Methoden Überladung wird verwendet, um das Array beginnend an Position 2 zu durchsuchen und bis zum Ende des Arrays fortzufahren.The FindIndex<T>(T[], Int32, Predicate<T>) method overload is used to search the array beginning at position 2 and continuing to the end of the array. Es findet das-Element an Position 5.It finds the element at position 5. Zum Schluss wird die FindIndex<T>(T[], Int32, Int32, Predicate<T>)-Methoden Überladung verwendet, um den Bereich von drei Elementen zu durchsuchen, beginnend an Position 2.Finally, the FindIndex<T>(T[], Int32, Int32, Predicate<T>) method overload is used to search the range of three elements beginning at position 2. Sie gibt-1 zurück, da in diesem Bereich keine Dinosaurier Namen vorhanden sind, die mit "saurus" enden.It returns -1 because there are no dinosaur names in that range that end with "saurus".

using namespace System;

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

void main()
{
    array<String^>^ dinosaurs = { "Compsognathus", 
        "Amargasaurus",   "Oviraptor",      "Velociraptor", 
        "Deinonychus",    "Dilophosaurus",  "Gallimimus", 
        "Triceratops" };

    Console::WriteLine();
    for each(String^ dinosaur in dinosaurs )
    {
        Console::WriteLine(dinosaur);
    }

    Console::WriteLine("\nArray::FindIndex(dinosaurs, EndsWithSaurus): {0}", 
        Array::FindIndex(dinosaurs, gcnew Predicate<String^>(EndsWithSaurus)));

    Console::WriteLine("\nArray::FindIndex(dinosaurs, 2, EndsWithSaurus): {0}",
        Array::FindIndex(dinosaurs, 2, gcnew Predicate<String^>(EndsWithSaurus)));

    Console::WriteLine("\nArray::FindIndex(dinosaurs, 2, 3, EndsWithSaurus): {0}",
        Array::FindIndex(dinosaurs, 2, 3, gcnew Predicate<String^>(EndsWithSaurus)));
}

/* 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
 */
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
 */
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

Hinweise

Der Array wird nach startIndex durchsucht und endet beim letzten Element.The Array is searched forward starting at startIndex and ending at the last element.

Der Predicate<T> ist ein Delegat für eine Methode, die true zurückgibt, wenn das an Sie übergebenen Objekt mit den im Delegaten definierten Bedingungen übereinstimmt.The Predicate<T> is a delegate to a method that returns true if the object passed to it matches the conditions defined in the delegate. Die Elemente array werden einzeln an die Predicate<T>übermittelt.The elements of array are individually passed to the Predicate<T>.

Bei dieser Methode handelt es sich um einen O (n)-Vorgang, bei dem n die Anzahl der Elemente von startIndex bis zum Ende arrayist.This method is an O(n) operation, where n is the number of elements from startIndex to the end of array.

Siehe auch

FindIndex<T>(T[], Int32, Int32, 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 innerhalb des Bereichs von Elementen im Array zurück, der am angegebenen Index beginnt und die angegebene Anzahl von Elementen umfasst.Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the Array that starts at the specified index and contains the specified number of elements.

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.The type of the elements of the array.

Parameter

array
T[]

Das zu durchsuchende eindimensionale und nullbasierte Array.The one-dimensional, zero-based Array to search.

startIndex
Int32

Der nullbasierte Startindex für die Suche.The zero-based starting index of the search.

count
Int32

Die Anzahl der Elemente im zu durchsuchenden Abschnitt.The number of elements in the section to search.

match
Predicate<T>

Das Predicate<T>, das die Bedingungen für das Element definiert, nach dem gesucht werden soll.The Predicate<T> that defines the conditions of the element to search for.

Gibt zurück

Der nullbasierte Index des ersten Vorkommens eines Elements, das mit den durch match definierten Bedingungen übereinstimmt, sofern gefunden; andernfalls -1.The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, -1.

Ausnahmen

array ist nullarray is null.

- oder --or- match ist nullmatch is null.

startIndex liegt außerhalb des Bereichs der gültigen Indizes für array.startIndex is outside the range of valid indexes for array.

- oder --or- count ist kleiner als 0 (null).count is less than zero.

- oder --or- startIndex und count geben keinen gültigen Abschnitt im array an.startIndex and count do not specify a valid section in array.

Beispiele

Im folgenden Codebeispiel werden alle drei über Ladungen der FindIndex generischen-Methode veranschaulicht.The following code example demonstrates all three overloads of the FindIndex generic method. Ein Array von Zeichen folgen wird erstellt, das acht Dinosaurier Namen enthält, von denen zwei (an den Positionen 1 und 5) mit "saurus" enden.An array of strings is created, containing 8 dinosaur names, two of which (at positions 1 and 5) end with "saurus". Das Codebeispiel definiert auch eine Such Prädikat Methode mit dem Namen EndsWithSaurus, die einen Zeichen folgen Parameter annimmt und einen booleschen Wert zurückgibt, der angibt, ob die Eingabe Zeichenfolge auf "saurus" endet.The code example also defines a search predicate method named EndsWithSaurus, which accepts a string parameter and returns a Boolean value indicating whether the input string ends in "saurus".

Die FindIndex<T>(T[], Predicate<T>)-Methoden Überladung durchläuft das Array von Anfang an, wobei jedes Element wiederum an die EndsWithSaurus-Methode übergeben wird.The FindIndex<T>(T[], Predicate<T>) method overload traverses the array from the beginning, passing each element in turn to the EndsWithSaurus method. Die Suche wird beendet, wenn die EndsWithSaurus-Methode true für das Element an Position 1 zurückgibt.The search stops when the EndsWithSaurus method returns true for the element at position 1.

Hinweis

In C# und Visual Basic muss der Predicate<string> Delegat (Predicate(Of String) in Visual Basic) nicht explizit erstellt werden.In C# and Visual Basic, it is not necessary to create the Predicate<string> delegate (Predicate(Of String) in Visual Basic) explicitly. Diese Sprachen ableiten den korrekten Delegaten aus dem Kontext und erstellen ihn automatisch.These languages infer the correct delegate from context and create it automatically.

Die FindIndex<T>(T[], Int32, Predicate<T>)-Methoden Überladung wird verwendet, um das Array beginnend an Position 2 zu durchsuchen und bis zum Ende des Arrays fortzufahren.The FindIndex<T>(T[], Int32, Predicate<T>) method overload is used to search the array beginning at position 2 and continuing to the end of the array. Es findet das-Element an Position 5.It finds the element at position 5. Zum Schluss wird die FindIndex<T>(T[], Int32, Int32, Predicate<T>)-Methoden Überladung verwendet, um den Bereich von drei Elementen zu durchsuchen, beginnend an Position 2.Finally, the FindIndex<T>(T[], Int32, Int32, Predicate<T>) method overload is used to search the range of three elements beginning at position 2. Sie gibt-1 zurück, da in diesem Bereich keine Dinosaurier Namen vorhanden sind, die mit "saurus" enden.It returns -1 because there are no dinosaur names in that range that end with "saurus".

using namespace System;

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

void main()
{
    array<String^>^ dinosaurs = { "Compsognathus", 
        "Amargasaurus",   "Oviraptor",      "Velociraptor", 
        "Deinonychus",    "Dilophosaurus",  "Gallimimus", 
        "Triceratops" };

    Console::WriteLine();
    for each(String^ dinosaur in dinosaurs )
    {
        Console::WriteLine(dinosaur);
    }

    Console::WriteLine("\nArray::FindIndex(dinosaurs, EndsWithSaurus): {0}", 
        Array::FindIndex(dinosaurs, gcnew Predicate<String^>(EndsWithSaurus)));

    Console::WriteLine("\nArray::FindIndex(dinosaurs, 2, EndsWithSaurus): {0}",
        Array::FindIndex(dinosaurs, 2, gcnew Predicate<String^>(EndsWithSaurus)));

    Console::WriteLine("\nArray::FindIndex(dinosaurs, 2, 3, EndsWithSaurus): {0}",
        Array::FindIndex(dinosaurs, 2, 3, gcnew Predicate<String^>(EndsWithSaurus)));
}

/* 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
 */
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
 */
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

Hinweise

Die Array wird nach vorne durchsucht, beginnend bei startIndex und endet bei startIndex Plus count minus 1, wenn count größer als 0 (null) ist.The Array is searched forward starting at startIndex and ending at startIndex plus count minus 1, if count is greater than 0.

Der Predicate<T> ist ein Delegat für eine Methode, die true zurückgibt, wenn das an Sie übergebenen Objekt mit den im Delegaten definierten Bedingungen übereinstimmt.The Predicate<T> is a delegate to a method that returns true if the object passed to it matches the conditions defined in the delegate. Die Elemente array werden einzeln an die Predicate<T>übermittelt.The elements of array are individually passed to the Predicate<T>.

Bei dieser Methode handelt es sich um einen O (n)-Vorgang, bei dem n countist.This method is an O(n) operation, where n is count.

Siehe auch

Gilt für: