Array.FindIndex Méthode

Définition

Recherche un élément qui correspond aux conditions définies par un prédicat spécifié et retourne l’index de base zéro de la première occurrence dans une Array ou une partie de celui-ci.

Surcharges

Nom Description
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 dans l’ensemble 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 dans la plage d’éléments dans la Array plage d’éléments qui s’étend de l’index spécifié au dernier élément.

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 dans la plage d’éléments de l’index Array spécifié et contient le nombre spécifié d’éléments.

Exemples

L’exemple de code suivant illustre les trois surcharges de la FindIndex méthode générique. Un tableau de chaînes est créé, contenant 8 noms de dinosaures, dont deux (aux positions 1 et 5) se terminent par « 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 ».

La FindIndex<T>(T[], Predicate<T>) surcharge de méthode traverse le tableau du début, en passant à son tour chaque élément à la EndsWithSaurus méthode. La recherche s’arrête lorsque la EndsWithSaurus méthode retourne true l’élément à la position 1.

Note

En C#, F# et Visual Basic, il n’est pas nécessaire de créer explicitement le délégué Predicate<string> (Predicate(Of String) dans Visual Basic). Ces langages déduitnt le délégué approprié à partir du contexte et créez-le automatiquement.

La FindIndex<T>(T[], Int32, Predicate<T>) surcharge de méthode est utilisée pour rechercher le tableau à partir de la position 2 et passer à la fin du tableau. Il trouve l’élément à la position 5. Enfin, la FindIndex<T>(T[], Int32, Int32, Predicate<T>) surcharge de méthode est utilisée pour rechercher la plage de trois éléments commençant à la position 2. Elle retourne -1 parce qu’il n’y a pas de noms de dinosaures dans cette plage qui se terminent par « saurus ».

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>)

Source:
Array.cs
Source:
Array.cs
Source:
Array.cs
Source:
Array.cs
Source:
Array.cs

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 dans l’ensemble 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.

Paramètres

array
T[]

Basé sur Array zéro unidimensionnel à rechercher.

match
Predicate<T>

Qui Predicate<T> définit les conditions de l’élément à rechercher.

Retours

Index de base zéro de la première occurrence d’un élément qui correspond aux conditions définies par match, s’il est trouvé ; sinon, -1.

Exceptions

array a la valeur null.

- ou -

match a la valeur null.

Remarques

La Array recherche est effectuée en avant à partir du premier élément et se termine au dernier élément.

Il Predicate<T> s’agit d’un délégué à une méthode qui retourne true si l’objet passé à celui-ci correspond aux conditions définies dans le délégué. Les éléments de array sont transmis individuellement au Predicate<T>.

Cette méthode est une opération O(n), où n est le Lengtharray.

Voir aussi

S’applique à

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

Source:
Array.cs
Source:
Array.cs
Source:
Array.cs
Source:
Array.cs
Source:
Array.cs

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 dans la plage d’éléments dans la Array plage d’éléments qui s’étend de l’index spécifié au dernier élément.

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.

Paramètres

array
T[]

Basé sur Array zéro unidimensionnel à rechercher.

startIndex
Int32

Index de départ de base zéro de la recherche.

match
Predicate<T>

Qui Predicate<T> définit les conditions de l’élément à rechercher.

Retours

Index de base zéro de la première occurrence d’un élément qui correspond aux conditions définies par match, s’il est trouvé ; sinon, -1.

Exceptions

array a la valeur null.

- ou -

match a la valeur null.

startIndex est inférieur à zéro ou supérieur à la longueur du array.

Remarques

L’objet Array est recherché en avant en commençant à startIndex la fin du dernier élément.

Il Predicate<T> s’agit d’un délégué à une méthode qui retourne true si l’objet passé à celui-ci correspond aux conditions définies dans le délégué. Les éléments de array sont transmis individuellement au 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.

Voir aussi

S’applique à

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

Source:
Array.cs
Source:
Array.cs
Source:
Array.cs
Source:
Array.cs
Source:
Array.cs

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 dans la plage d’éléments de l’index Array spécifié et contient le nombre spécifié d’éléments.

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.

Paramètres

array
T[]

Basé sur Array zéro unidimensionnel à rechercher.

startIndex
Int32

Index de départ de base zéro de la recherche.

count
Int32

Nombre d’éléments de la section à rechercher.

match
Predicate<T>

Qui Predicate<T> définit les conditions de l’élément à rechercher.

Retours

Index de base zéro de la première occurrence d’un élément qui correspond aux conditions définies par match, s’il est trouvé ; sinon, -1.

Exceptions

array a la valeur null.

- ou -

match a la valeur null.

startIndex est inférieur à zéro ou supérieur à la longueur du array.

- ou -

count est inférieur à zéro.

- ou -

startIndex et count ne spécifiez pas de section valide dans array.

Remarques

L’objet Array est recherché en avant à startIndex partir et se terminant à startIndex plus count moins 1, s’il count est supérieur à 0.

Il Predicate<T> s’agit d’un délégué à une méthode qui retourne true si l’objet passé à celui-ci correspond aux conditions définies dans le délégué. Les éléments de array sont transmis individuellement au Predicate<T>.

Cette méthode est une opération O(n), où n est count.

Voir aussi

S’applique à