Array.FindIndex Méthode

Définition

Recherche un élément qui correspond aux conditions définies par un prédicat spécifié, puis retourne l’index de base zéro de la première occurrence au sein d’un Array ou une partie de celui-ci.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.

Surcharges

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

Recherche un élément qui correspond aux conditions définies par le prédicat spécifié et retourne l’index de base zéro de la première occurrence trouvée dans le Array entier.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>)

Recherche un élément qui correspond aux conditions définies par le prédicat spécifié et retourne l’index de base zéro de la première occurrence trouvée dans la plage d’éléments de Array qui s’étend de l’index spécifié au dernier élément.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>)

Recherche un élément qui correspond aux conditions définies par le prédicat spécifié et retourne l'index de base zéro de la première occurrence trouvée dans la plage d'éléments de Array qui commence à l'index spécifié et contient le nombre d'éléments spécifié.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>)

Recherche un élément qui correspond aux conditions définies par le prédicat spécifié et retourne l’index de base zéro de la première occurrence trouvée dans le Array entier.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

Paramètres de type

T

Type des éléments du tableau.The type of the elements of the array.

Paramètres

array
T[]

Array de base zéro unidimensionnel à explorer.The one-dimensional, zero-based Array to search.

match
Predicate<T>

Predicate<T> qui définit les conditions de l’élément à rechercher.The Predicate<T> that defines the conditions of the element to search for.

Retours

Index de base zéro de la première occurrence d’un élément qui répond aux conditions définies par match, si cette occurrence est trouvée ; sinon, -1.The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, -1.

Exceptions

array a la valeur null.array is null.

-ou--or- match a la valeur null.match is null.

Exemples

L’exemple de code suivant illustre les trois surcharges de la méthode générique FindIndex.The following code example demonstrates all three overloads of the FindIndex generic method. Un tableau de chaînes est créé, contenant 8 noms de dinosaures, dont deux (aux positions 1 et 5) se terminent par « saurus ».An array of strings is created, containing 8 dinosaur names, two of which (at positions 1 and 5) end with "saurus". L’exemple de code définit également une méthode de prédicat de recherche nommée EndsWithSaurus, qui accepte un paramètre de chaîne et retourne une valeur booléenne indiquant si la chaîne d’entrée se termine par « saurus ».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".

La surcharge de méthode FindIndex<T>(T[], Predicate<T>) parcourt le tableau depuis le début, passant chaque élément à son tour à la méthode EndsWithSaurus.The FindIndex<T>(T[], Predicate<T>) method overload traverses the array from the beginning, passing each element in turn to the EndsWithSaurus method. La recherche s’arrête lorsque la méthode EndsWithSaurus retourne true pour l’élément à la position 1.The search stops when the EndsWithSaurus method returns true for the element at position 1.

Notes

Dans C# et Visual Basic, il n’est pas nécessaire de créer explicitement le Predicate<string> délégué (Predicate(Of String) dans Visual Basic).In C# and Visual Basic, it is not necessary to create the Predicate<string> delegate (Predicate(Of String) in Visual Basic) explicitly. Ces langages déduisent le délégué correct du contexte et le créent automatiquement.These languages infer the correct delegate from context and create it automatically.

La surcharge de méthode FindIndex<T>(T[], Int32, Predicate<T>) permet de rechercher dans le tableau en commençant à la position 2 et en continuant jusqu’à la fin du tableau.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. Elle recherche l’élément à la position 5.It finds the element at position 5. Enfin, la surcharge de la méthode FindIndex<T>(T[], Int32, Int32, Predicate<T>) est utilisée pour effectuer une recherche dans la plage de trois éléments en commençant à la 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. Elle retourne-1, car il n’existe aucun nom de dinosaure dans cette plage qui se termine par « saurus ».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

Remarques

Le Array effectue une recherche vers l’avant à partir du premier élément et se termine au dernier élément.The Array is searched forward starting at the first element and ending at the last element.

Le Predicate<T> est un délégué à une méthode qui retourne true si l’objet qui lui est passé correspond aux conditions définies dans le délégué.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. Les éléments de array sont passés individuellement au Predicate<T>.The elements of array are individually passed to the Predicate<T>.

Cette méthode est une opération O (n), où n est le Length de array.This method is an O(n) operation, where n is the Length of array.

Voir aussi

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

Recherche un élément qui correspond aux conditions définies par le prédicat spécifié et retourne l’index de base zéro de la première occurrence trouvée dans la plage d’éléments de Array qui s’étend de l’index spécifié au dernier élément.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

Paramètres de type

T

Type des éléments du tableau.The type of the elements of the array.

Paramètres

array
T[]

Array de base zéro unidimensionnel à explorer.The one-dimensional, zero-based Array to search.

startIndex
Int32

Index de début de base zéro de la recherche.The zero-based starting index of the search.

match
Predicate<T>

Predicate<T> qui définit les conditions de l’élément à rechercher.The Predicate<T> that defines the conditions of the element to search for.

Retours

Index de base zéro de la première occurrence d’un élément qui répond aux conditions définies par match, si cette occurrence est trouvée ; sinon, -1.The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, -1.

Exceptions

array a la valeur null.array is null.

-ou--or- match a la valeur null.match is null.

startIndex n’est pas compris dans la plage d’index valides pour array.startIndex is outside the range of valid indexes for array.

Exemples

L’exemple de code suivant illustre les trois surcharges de la méthode générique FindIndex.The following code example demonstrates all three overloads of the FindIndex generic method. Un tableau de chaînes est créé, contenant 8 noms de dinosaures, dont deux (aux positions 1 et 5) se terminent par « saurus ».An array of strings is created, containing 8 dinosaur names, two of which (at positions 1 and 5) end with "saurus". L’exemple de code définit également une méthode de prédicat de recherche nommée EndsWithSaurus, qui accepte un paramètre de chaîne et retourne une valeur booléenne indiquant si la chaîne d’entrée se termine par « saurus ».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".

La surcharge de méthode FindIndex<T>(T[], Predicate<T>) parcourt le tableau depuis le début, passant chaque élément à son tour à la méthode EndsWithSaurus.The FindIndex<T>(T[], Predicate<T>) method overload traverses the array from the beginning, passing each element in turn to the EndsWithSaurus method. La recherche s’arrête lorsque la méthode EndsWithSaurus retourne true pour l’élément à la position 1.The search stops when the EndsWithSaurus method returns true for the element at position 1.

Notes

Dans C# et Visual Basic, il n’est pas nécessaire de créer explicitement le Predicate<string> délégué (Predicate(Of String) dans Visual Basic).In C# and Visual Basic, it is not necessary to create the Predicate<string> delegate (Predicate(Of String) in Visual Basic) explicitly. Ces langages déduisent le délégué correct du contexte et le créent automatiquement.These languages infer the correct delegate from context and create it automatically.

La surcharge de méthode FindIndex<T>(T[], Int32, Predicate<T>) permet de rechercher dans le tableau en commençant à la position 2 et en continuant jusqu’à la fin du tableau.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. Elle recherche l’élément à la position 5.It finds the element at position 5. Enfin, la surcharge de la méthode FindIndex<T>(T[], Int32, Int32, Predicate<T>) est utilisée pour effectuer une recherche dans la plage de trois éléments en commençant à la 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. Elle retourne-1, car il n’existe aucun nom de dinosaure dans cette plage qui se termine par « saurus ».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

Remarques

La recherche est effectuée vers Array l’avant à partir de startIndex et se termine au dernier élément.The Array is searched forward starting at startIndex and ending at the last element.

Le Predicate<T> est un délégué à une méthode qui retourne true si l’objet qui lui est passé correspond aux conditions définies dans le délégué.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. Les éléments de array sont passés individuellement au Predicate<T>.The elements of array are individually passed to the Predicate<T>.

Cette méthode est une opération O (n), où n est le nombre d’éléments de startIndex à la fin de array.This method is an O(n) operation, where n is the number of elements from startIndex to the end of array.

Voir aussi

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

Recherche un élément qui correspond aux conditions définies par le prédicat spécifié et retourne l'index de base zéro de la première occurrence trouvée dans la plage d'éléments de Array qui commence à l'index spécifié et contient le nombre d'éléments spécifié.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

Paramètres de type

T

Type des éléments du tableau.The type of the elements of the array.

Paramètres

array
T[]

Array de base zéro unidimensionnel à explorer.The one-dimensional, zero-based Array to search.

startIndex
Int32

Index de début de base zéro de la recherche.The zero-based starting index of the search.

count
Int32

Nombre d’éléments contenus dans la section où la recherche doit être effectuée.The number of elements in the section to search.

match
Predicate<T>

Predicate<T> qui définit les conditions de l’élément à rechercher.The Predicate<T> that defines the conditions of the element to search for.

Retours

Index de base zéro de la première occurrence d’un élément qui répond aux conditions définies par match, si cette occurrence est trouvée ; sinon, -1.The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, -1.

Exceptions

array a la valeur null.array is null.

-ou--or- match a la valeur null.match is null.

startIndex n’est pas compris dans la plage d’index valides pour array.startIndex is outside the range of valid indexes for array.

-ou--or- count est inférieur à zéro.count is less than zero.

-ou--or- startIndex et count ne spécifient pas une section valide dans array.startIndex and count do not specify a valid section in array.

Exemples

L’exemple de code suivant illustre les trois surcharges de la méthode générique FindIndex.The following code example demonstrates all three overloads of the FindIndex generic method. Un tableau de chaînes est créé, contenant 8 noms de dinosaures, dont deux (aux positions 1 et 5) se terminent par « saurus ».An array of strings is created, containing 8 dinosaur names, two of which (at positions 1 and 5) end with "saurus". L’exemple de code définit également une méthode de prédicat de recherche nommée EndsWithSaurus, qui accepte un paramètre de chaîne et retourne une valeur booléenne indiquant si la chaîne d’entrée se termine par « saurus ».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".

La surcharge de méthode FindIndex<T>(T[], Predicate<T>) parcourt le tableau depuis le début, passant chaque élément à son tour à la méthode EndsWithSaurus.The FindIndex<T>(T[], Predicate<T>) method overload traverses the array from the beginning, passing each element in turn to the EndsWithSaurus method. La recherche s’arrête lorsque la méthode EndsWithSaurus retourne true pour l’élément à la position 1.The search stops when the EndsWithSaurus method returns true for the element at position 1.

Notes

Dans C# et Visual Basic, il n’est pas nécessaire de créer explicitement le Predicate<string> délégué (Predicate(Of String) dans Visual Basic).In C# and Visual Basic, it is not necessary to create the Predicate<string> delegate (Predicate(Of String) in Visual Basic) explicitly. Ces langages déduisent le délégué correct du contexte et le créent automatiquement.These languages infer the correct delegate from context and create it automatically.

La surcharge de méthode FindIndex<T>(T[], Int32, Predicate<T>) permet de rechercher dans le tableau en commençant à la position 2 et en continuant jusqu’à la fin du tableau.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. Elle recherche l’élément à la position 5.It finds the element at position 5. Enfin, la surcharge de la méthode FindIndex<T>(T[], Int32, Int32, Predicate<T>) est utilisée pour effectuer une recherche dans la plage de trois éléments en commençant à la 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. Elle retourne-1, car il n’existe aucun nom de dinosaure dans cette plage qui se termine par « saurus ».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

Remarques

La recherche est effectuée vers Array l’avant à partir de startIndex et se termine à startIndex plus count moins 1, si count est supérieur à 0.The Array is searched forward starting at startIndex and ending at startIndex plus count minus 1, if count is greater than 0.

Le Predicate<T> est un délégué à une méthode qui retourne true si l’objet qui lui est passé correspond aux conditions définies dans le délégué.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. Les éléments de array sont passés individuellement au Predicate<T>.The elements of array are individually passed to the Predicate<T>.

Cette méthode est une opération O (n), où n est count.This method is an O(n) operation, where n is count.

Voir aussi

S’applique à