Array.FindIndex Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vyhledá prvek, který odpovídá podmínkám definovaným zadaným predikátem, a vrátí index založený na nule prvního výskytu v rámci nebo Array jeho části.
Přetížení
FindIndex<T>(T[], Predicate<T>) |
Vyhledá prvek, který odpovídá podmínkám definovaným zadaným predikátem, a vrátí index založený na nule prvního výskytu v rámci celého Arraysouboru . |
FindIndex<T>(T[], Int32, Predicate<T>) |
Vyhledá prvek, který odpovídá podmínkám definovaným zadaným predikátem, a vrátí nulový index prvního výskytu v rozsahu prvků v Array rozsahu prvků, který se rozšiřuje ze zadaného indexu na poslední prvek. |
FindIndex<T>(T[], Int32, Int32, Predicate<T>) |
Vyhledá prvek, který odpovídá podmínkám definovaným zadaným predikátem, a vrátí nulový index prvního výskytu v rozsahu prvků, Array který začíná na zadaném indexu a obsahuje zadaný počet prvků. |
Příklady
Následující příklad kódu ukazuje všechny tři přetížení FindIndex obecné metody. Je vytvořeno pole řetězců obsahující názvy osmi druhů dinosaurů, z nichž dva (na pozicích 1 a 5) končí na "saurus". Příklad kódu také definuje metodu predikátu vyhledávání s názvem EndsWithSaurus
, která přijímá parametr řetězce a vrátí logickou hodnotu určující, zda vstupní řetězec končí na "saurus".
Přetížení FindIndex<T>(T[], Predicate<T>) metody prochází pole od začátku a předává každý prvek do EndsWithSaurus
metody. Hledání se zastaví, když EndsWithSaurus
metoda vrátí true
prvek na pozici 1.
Poznámka
V jazyce C#, F# a Visual Basic není nutné explicitně vytvořit delegáta Predicate<string>
(Predicate(Of String)
v Visual Basic). Tyto jazyky odvozují správného delegáta z kontextu a vytvoří jej automaticky.
Přetížení FindIndex<T>(T[], Int32, Predicate<T>) metody slouží k vyhledávání pole začínající na pozici 2 a pokračuje na konec pole. Najde prvek na pozici 5. FindIndex<T>(T[], Int32, Int32, Predicate<T>) Nakonec se přetížení metody používá k hledání rozsahu tří prvků začínajících na pozici 2. Vrátí hodnotu -1, protože v daném rozsahu nejsou žádné názvy dinosaurů, které končí "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
*/
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>)
Vyhledá prvek, který odpovídá podmínkám definovaným zadaným predikátem, a vrátí index založený na nule prvního výskytu v rámci celého Arraysouboru .
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
Parametry typu
- T
Typ prvků pole.
Parametry
- array
- T[]
Jednorozměrný, nulový, který Array se má prohledávat.
- match
- Predicate<T>
Ten Predicate<T> definuje podmínky prvku, který se má vyhledat.
Návraty
Index založený na nule prvního výskytu elementu, který odpovídá podmínkám definovaným match
, pokud je nalezen; jinak -1.
Výjimky
Poznámky
Vyhledá Array se dopředu počínaje prvním prvkem a končí na posledním prvku.
Je Predicate<T> delegátem metody, která vrátí true
, pokud objekt předaný odpovídá podmínkám definovaným v delegátu. Prvky array
jsou jednotlivě předány Predicate<T>.
Tato metoda je operace O(n
), kde n
je Length .array
Viz také
- 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>
Platí pro
FindIndex<T>(T[], Int32, Predicate<T>)
Vyhledá prvek, který odpovídá podmínkám definovaným zadaným predikátem, a vrátí nulový index prvního výskytu v rozsahu prvků v Array rozsahu prvků, který se rozšiřuje ze zadaného indexu na poslední prvek.
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
Parametry typu
- T
Typ prvků pole.
Parametry
- array
- T[]
Jednorozměrný, nulový, který Array se má prohledávat.
- startIndex
- Int32
Počáteční index hledání začínající od nuly.
- match
- Predicate<T>
Ten Predicate<T> definuje podmínky prvku, který se má vyhledat.
Návraty
Index založený na nule prvního výskytu elementu, který odpovídá podmínkám definovaným match
, pokud je nalezen; jinak -1.
Výjimky
startIndex
je mimo rozsah platných indexů pro array
.
Poznámky
Vyhledá Array se dopředu počínaje startIndex
posledním prvkem a končí na konci.
Je Predicate<T> delegátem metody, která vrátí true
, pokud objekt předaný odpovídá podmínkám definovaným v delegátu. Prvky array
jsou jednotlivě předány Predicate<T>.
Tato metoda je operace O(n
), kde n
je počet prvků od startIndex
konce array
.
Viz také
- 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>
Platí pro
FindIndex<T>(T[], Int32, Int32, Predicate<T>)
Vyhledá prvek, který odpovídá podmínkám definovaným zadaným predikátem, a vrátí nulový index prvního výskytu v rozsahu prvků, Array který začíná na zadaném indexu a obsahuje zadaný počet prvků.
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
Parametry typu
- T
Typ prvků pole.
Parametry
- array
- T[]
Jednorozměrný, nulový, který Array se má prohledávat.
- startIndex
- Int32
Počáteční index hledání začínající od nuly.
- count
- Int32
Počet prvků v prohledávané části.
- match
- Predicate<T>
Ten Predicate<T> definuje podmínky prvku, který se má vyhledat.
Návraty
Index založený na nule prvního výskytu elementu, který odpovídá podmínkám definovaným match
, pokud je nalezen; jinak -1.
Výjimky
startIndex
je mimo rozsah platných indexů pro array
.
-nebo-
Hodnota count
je menší než nula.
-nebo-
startIndex
a count
nezadávejte platný oddíl v array
souboru .
Poznámky
Vyhledá Array se dopředu počínaje startIndex
a končí na startIndex
count
mínus 1, pokud count
je větší než 0.
Je Predicate<T> delegátem metody, která vrátí true
, pokud objekt předaný odpovídá podmínkám definovaným v delegátu. Prvky array
jsou jednotlivě předány Predicate<T>.
Tato metoda je operace O(n
), kde n
je count
.
Viz také
- 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>