Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Array.FindIndex<T>(T[], Predicate<T>)

 

Cerca un elemento che corrisponda alle condizioni definite dal predicato specificato e restituisce l'indice in base zero della prima occorrenza all'interno di Array.

Spazio dei nomi:   System
Assembly:  mscorlib (in mscorlib.dll)

public static int FindIndex<T>(
	T[] array,
	Predicate<T> match
)

Parametri

array
Type: T[]

Oggetto Array unidimensionale in base zero in cui eseguire la ricerca.

match
Type: System.Predicate<T>

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

Valore restituito

Type: System.Int32

Indice in base zero della prima occorrenza di un elemento che corrisponde alle condizioni definite da match, se presente; in caso contrario, -1.

Parametri tipo

T

Tipo degli elementi della matrice.

Exception Condition
ArgumentNullException

array è null.

-oppure-

match è null.

Il Array avanti al primo elemento fino all'ultimo elemento, viene eseguita la ricerca.

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

Questo metodo è un'operazione O (n) operazione, in cui n è il Length di array.

Esempio di codice seguente illustra i tre overload del FindIndex metodo generico. Viene creata una matrice di stringhe contenente 8 dinosauro, due dei quali (in corrispondenza delle 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 di stringa e restituisce un valore booleano che indica se la stringa di input termina con "saurus".

Il FindIndex<T>(T[], Predicate<T>) overload del metodo consente di scorrere la matrice dall'inizio, passando a sua volta a ogni elemento di EndsWithSaurus metodo. La ricerca si interrompe quando il EndsWithSaurus restituisce true per l'elemento nella posizione 1.

System_CAPS_noteNota

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

Il FindIndex<T>(T[], Int32, Predicate<T>) overload del metodo utilizzato per la ricerca di matrice a partire dalla posizione 2 e continuando fino alla fine della matrice. Trova l'elemento in corrispondenza della posizione 5. Infine, il FindIndex<T>(T[], Int32, Int32, Predicate<T>) overload del metodo utilizzato per la ricerca dell'intervallo di tre elementi a partire dalla posizione 2. Restituisce -1 poiché non sono presenti nomi di dinosauro compreso 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.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
 */

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 2.0
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Windows Phone Silverlight
Disponibile da 8.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: