Array.FindIndex Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Cerca un elemento che corrisponde alle condizioni definite da un predicato specificato e restituisce l'indice in base zero della prima occorrenza all'interno di una Array o una parte di esso.
Overload
| Nome | Descrizione |
|---|---|
| FindIndex<T>(T[], Predicate<T>) |
Cerca un elemento che corrisponde alle condizioni definite dal predicato specificato e restituisce l'indice in base zero della prima occorrenza all'interno dell'intero Arrayoggetto . |
| FindIndex<T>(T[], Int32, Predicate<T>) |
Cerca un elemento che corrisponde alle condizioni definite dal predicato specificato e restituisce l'indice in base zero della prima occorrenza all'interno dell'intervallo di elementi nell'oggetto Array che si estende dall'indice specificato all'ultimo elemento. |
| FindIndex<T>(T[], Int32, Int32, Predicate<T>) |
Cerca un elemento che corrisponde alle condizioni definite dal predicato specificato e restituisce l'indice in base zero della prima occorrenza all'interno dell'intervallo di elementi nell'oggetto Array che inizia in corrispondenza dell'indice specificato e contiene il numero specificato di elementi. |
Esempio
Nell'esempio di codice seguente vengono illustrati tutti e tre gli overload del FindIndex 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 FindIndex<T>(T[], Predicate<T>) metodo attraversa la matrice dall'inizio, passando ogni elemento a sua volta al EndsWithSaurus metodo . La ricerca si arresta quando il EndsWithSaurus metodo restituisce true per l'elemento nella posizione 1.
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 FindIndex<T>(T[], Int32, Predicate<T>) metodo viene usato per cercare la matrice a partire dalla posizione 2 e continuare fino alla fine della matrice. Trova l'elemento nella posizione 5. Infine, l'overload del FindIndex<T>(T[], Int32, Int32, Predicate<T>) metodo viene usato per cercare l'intervallo di tre elementi a partire dalla posizione 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.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>)
Cerca un elemento che corrisponde alle condizioni definite dal predicato specificato e restituisce l'indice in base zero della prima occorrenza all'interno dell'intero Arrayoggetto .
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
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 della prima occorrenza di un elemento che corrisponde alle condizioni definite da match, se trovato; in caso contrario, -1.
Eccezioni
Commenti
L'oggetto Array viene cercato in avanti a partire dal primo elemento e termina con l'ultimo 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
- Exists<T>(T[], Predicate<T>)
- Find<T>(T[], Predicate<T>)
- FindLast<T>(T[], Predicate<T>)
- FindAll<T>(T[], Predicate<T>)
- BinarySearch
- IndexOf
- LastIndexOf
- Predicate<T>
Si applica a
FindIndex<T>(T[], Int32, Predicate<T>)
Cerca un elemento che corrisponde alle condizioni definite dal predicato specificato e restituisce l'indice in base zero della prima occorrenza all'interno dell'intervallo di elementi nell'oggetto Array che si estende dall'indice specificato all'ultimo elemento.
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
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.
- match
- Predicate<T>
Oggetto Predicate<T> che definisce le condizioni dell'elemento da cercare.
Valori restituiti
Indice in base zero della prima occorrenza di un elemento che corrisponde alle condizioni definite da match, se trovato; in caso contrario, -1.
Eccezioni
startIndex è minore di zero o maggiore della lunghezza di array.
Commenti
L'oggetto Array viene cercato in avanti a partire da startIndex e termina con l'ultimo 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 da startIndex alla fine di array.
Vedi anche
- Exists<T>(T[], Predicate<T>)
- Find<T>(T[], Predicate<T>)
- FindLast<T>(T[], Predicate<T>)
- FindAll<T>(T[], Predicate<T>)
- BinarySearch
- IndexOf
- LastIndexOf
- Predicate<T>
Si applica a
FindIndex<T>(T[], Int32, Int32, Predicate<T>)
Cerca un elemento che corrisponde alle condizioni definite dal predicato specificato e restituisce l'indice in base zero della prima occorrenza all'interno dell'intervallo di elementi nell'oggetto Array che inizia in corrispondenza dell'indice specificato e contiene il numero specificato di elementi.
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
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.
- 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 della prima occorrenza di un elemento che corrisponde alle condizioni definite da match, se trovato; in caso contrario, -1.
Eccezioni
startIndex è minore di zero o maggiore della lunghezza di array.
oppure
count è minore di zero.
oppure
startIndex e count non specificano una sezione valida in array.
Commenti
L'oggetto Array viene cercato in avanti a partire da startIndex e termina con startIndex più count meno 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
- Exists<T>(T[], Predicate<T>)
- Find<T>(T[], Predicate<T>)
- FindLast<T>(T[], Predicate<T>)
- FindAll<T>(T[], Predicate<T>)
- BinarySearch
- IndexOf
- LastIndexOf
- Predicate<T>