Array.FindLastIndex Metodo

Definizione

Cerca un elemento che corrisponde alle condizioni definite da un predicato specificato e restituisce l'indice in base zero dell'ultima occorrenza all'interno di una Array o una parte di esso.

Overload

Nome Descrizione
FindLastIndex<T>(T[], Predicate<T>)

Cerca un elemento che corrisponde alle condizioni definite dal predicato specificato e restituisce l'indice in base zero dell'ultima occorrenza all'interno dell'intero Arrayoggetto .

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

Cerca un elemento che corrisponde alle condizioni definite dal predicato specificato e restituisce l'indice in base zero dell'ultima occorrenza all'interno dell'intervallo di elementi nell'oggetto Array che si estende dal primo elemento all'indice specificato.

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

Cerca un elemento che corrisponde alle condizioni definite dal predicato specificato e restituisce l'indice in base zero dell'ultima occorrenza all'interno dell'intervallo di elementi in Array che contiene il numero specificato di elementi e termina in corrispondenza dell'indice specificato.

Esempio

Nell'esempio di codice seguente vengono illustrati tutti e tre gli overload del FindLastIndex metodo generico. Viene creata una matrice di stringhe contenente 8 nomi di dinosauro, due dei quali (nelle posizioni 1 e 5) terminano con "saurus". L'esempio di codice definisce anche un metodo di predicato di ricerca denominato EndsWithSaurus, che accetta un parametro stringa e restituisce un valore booleano che indica se la stringa di input termina in "saurus".

L'overload del FindLastIndex<T>(T[], Predicate<T>) metodo attraversa la matrice all'indietro dalla fine, passando ogni elemento a sua volta al EndsWithSaurus metodo . La ricerca si arresta quando il EndsWithSaurus metodo restituisce true per l'elemento nella posizione 5.

Note

In C#, F# e Visual Basic non è necessario creare in modo esplicito il delegato Predicate<string> (Predicate(Of String) in Visual Basic). Questi linguaggi deducono il delegato corretto dal contesto e lo creano automaticamente.

L'overload del FindLastIndex<T>(T[], Int32, Predicate<T>) metodo viene usato per cercare la matrice a partire dalla posizione 4 e continuare all'indietro fino all'inizio della matrice. Trova l'elemento nella posizione 1. Infine, l'overload del FindLastIndex<T>(T[], Int32, Int32, Predicate<T>) metodo viene usato per cercare l'intervallo di tre elementi a partire dalla posizione 4 e lavorare all'indietro (ovvero gli elementi 4, 3 e 2). Restituisce -1 perché non sono presenti nomi di dinosauro nell'intervallo che terminano con "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.FindLastIndex(dinosaurs, EndsWithSaurus): {0}",
            Array.FindLastIndex(dinosaurs, EndsWithSaurus));

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

        Console.WriteLine(
            "\nArray.FindLastIndex(dinosaurs, 4, 3, EndsWithSaurus): {0}",
            Array.FindLastIndex(dinosaurs, 4, 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.FindLastIndex(dinosaurs, EndsWithSaurus): 5

Array.FindLastIndex(dinosaurs, 4, EndsWithSaurus): 1

Array.FindLastIndex(dinosaurs, 4, 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.FindLastIndex(dinosaurs, endsWithSaurus)
|> printfn "\nArray.FindLastIndex(dinosaurs, EndsWithSaurus): %i"

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

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


// This code example produces the following output:
//
//     Compsognathus
//     Amargasaurus
//     Oviraptor
//     Velociraptor
//     Deinonychus
//     Dilophosaurus
//     Gallimimus
//     Triceratops
//
//     Array.FindLastIndex(dinosaurs, EndsWithSaurus): 5
//
//     Array.FindLastIndex(dinosaurs, 4, EndsWithSaurus): 1
//
//     Array.FindLastIndex(dinosaurs, 4, 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.FindLastIndex(dinosaurs, AddressOf EndsWithSaurus): {0}", _
            Array.FindLastIndex(dinosaurs, AddressOf EndsWithSaurus))

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

        Console.WriteLine(vbLf & _
            "Array.FindLastIndex(dinosaurs, 4, 3, AddressOf EndsWithSaurus): {0}", _
            Array.FindLastIndex(dinosaurs, 4, 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.FindLastIndex(dinosaurs, AddressOf EndsWithSaurus): 5
'
'Array.FindLastIndex(dinosaurs, 4, AddressOf EndsWithSaurus): 1
'
'Array.FindLastIndex(dinosaurs, 4, 3, AddressOf EndsWithSaurus): -1

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

Cerca un elemento che corrisponde alle condizioni definite dal predicato specificato e restituisce l'indice in base zero dell'ultima occorrenza all'interno dell'intero Arrayoggetto .

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

Parametri di tipo

T

Tipo degli elementi della matrice.

Parametri

array
T[]

Oggetto unidimensionale in base Array zero da cercare.

match
Predicate<T>

Oggetto Predicate<T> che definisce le condizioni dell'elemento da cercare.

Valori restituiti

Indice in base zero dell'ultima occorrenza di un elemento che corrisponde alle condizioni definite da match, se trovato; in caso contrario, -1.

Eccezioni

array è null.

oppure

match è null.

Commenti

Viene Array eseguita la ricerca all'indietro a partire dall'ultimo elemento e termina con il primo elemento.

Predicate<T> è un delegato a un metodo che restituisce true se l'oggetto passato corrisponde alle condizioni definite nel delegato. Gli elementi di array vengono passati singolarmente all'oggetto Predicate<T>.

Questo metodo è un'operazione O(n), dove n è l'oggetto Length di array.

Vedi anche

Si applica a

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

Cerca un elemento che corrisponde alle condizioni definite dal predicato specificato e restituisce l'indice in base zero dell'ultima occorrenza all'interno dell'intervallo di elementi nell'oggetto Array che si estende dal primo elemento all'indice specificato.

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

Parametri di tipo

T

Tipo degli elementi della matrice.

Parametri

array
T[]

Oggetto unidimensionale in base Array zero da cercare.

startIndex
Int32

Indice iniziale in base zero della ricerca all'indietro.

match
Predicate<T>

Oggetto Predicate<T> che definisce le condizioni dell'elemento da cercare.

Valori restituiti

Indice in base zero dell'ultima occorrenza di un elemento che corrisponde alle condizioni definite da match, se trovato; in caso contrario, -1.

Eccezioni

array è null.

oppure

match è null.

startIndex non è compreso nell'intervallo di indici validi per array.

Commenti

Viene Array eseguita la ricerca all'indietro a partire da startIndex e termina con il primo elemento.

Predicate<T> è un delegato a un metodo che restituisce true se l'oggetto passato corrisponde alle condizioni definite nel delegato. Gli elementi di array vengono passati singolarmente all'oggetto Predicate<T>.

Questo metodo è un'operazione O(n), dove n è il numero di elementi dall'inizio di array a startIndex.

Vedi anche

Si applica a

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

Cerca un elemento che corrisponde alle condizioni definite dal predicato specificato e restituisce l'indice in base zero dell'ultima occorrenza all'interno dell'intervallo di elementi in Array che contiene il numero specificato di elementi e termina in corrispondenza dell'indice specificato.

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

Parametri di tipo

T

Tipo degli elementi della matrice.

Parametri

array
T[]

Oggetto unidimensionale in base Array zero da cercare.

startIndex
Int32

Indice iniziale in base zero della ricerca all'indietro.

count
Int32

Numero di elementi nella sezione da cercare.

match
Predicate<T>

Oggetto Predicate<T> che definisce le condizioni dell'elemento da cercare.

Valori restituiti

Indice in base zero dell'ultima occorrenza di un elemento che corrisponde alle condizioni definite da match, se trovato; in caso contrario, -1.

Eccezioni

array è null.

oppure

match è null.

startIndex non è compreso nell'intervallo di indici validi per array.

oppure

count è minore di zero.

oppure

startIndex e count non specificano una sezione valida in array.

Commenti

Viene Array eseguita la ricerca all'indietro a partire da startIndex e termina con startIndex meno count più 1, se count è maggiore di 0.

Predicate<T> è un delegato a un metodo che restituisce true se l'oggetto passato corrisponde alle condizioni definite nel delegato. Gli elementi di array vengono passati singolarmente all'oggetto Predicate<T>.

Questo metodo è un'operazione O(n), dove n è count.

Vedi anche

Si applica a