Array.FindIndex Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Wyszukuje element, który pasuje do warunków zdefiniowanych przez określony predykat, i zwraca indeks zerowy pierwszego wystąpienia w obrębie Array lub jego części.
Przeciążenia
FindIndex<T>(T[], Predicate<T>) |
Wyszukuje element, który pasuje do warunków zdefiniowanych przez określony predykat, i zwraca indeks zerowy pierwszego wystąpienia w całym Arrayobiekcie . |
FindIndex<T>(T[], Int32, Predicate<T>) |
Wyszukuje element zgodny z warunkami zdefiniowanymi przez określony predykat i zwraca indeks oparty na zerze pierwszego wystąpienia w zakresie elementów w Array obiekcie, który rozciąga się od określonego indeksu do ostatniego elementu. |
FindIndex<T>(T[], Int32, Int32, Predicate<T>) |
Wyszukuje element zgodny z warunkami zdefiniowanymi przez określony predykat i zwraca indeks oparty na zerze pierwszego wystąpienia w zakresie elementów w Array obiekcie rozpoczynającym się od określonego indeksu i zawiera określoną liczbę elementów. |
Przykłady
Poniższy przykład kodu przedstawia wszystkie trzy przeciążenia FindIndex metody ogólnej. Tworzona jest tablica ciągów zawierająca 8 nazw dinozaurów, przy czym dwie z nich (w pozycjach 1 i 5) kończą się na „saurus”. Przykładowy kod definiuje również metodę predykatu wyszukiwania o nazwie EndsWithSaurus
, która akceptuje parametr ciągu i zwraca wartość logiczną wskazującą, czy ciąg wejściowy kończy się na "saurus".
Przeciążenie FindIndex<T>(T[], Predicate<T>) metody przechodzi przez tablicę od początku, przekazując każdy element z kolei do EndsWithSaurus
metody . Wyszukiwanie zatrzymuje się, gdy EndsWithSaurus
metoda zwraca true
element na pozycji 1.
Uwaga
W językach C#, F# i Visual Basic nie jest konieczne jawne utworzenie delegata Predicate<string>
(Predicate(Of String)
w Visual Basic). Te języki wnioskują o poprawnym delegacie z kontekstu, a następnie są tworzone automatycznie.
Przeciążenie FindIndex<T>(T[], Int32, Predicate<T>) metody służy do wyszukiwania tablicy rozpoczynającej się od pozycji 2 i kontynuując do końca tablicy. Znajduje element na pozycji 5. FindIndex<T>(T[], Int32, Int32, Predicate<T>) Na koniec przeciążenie metody służy do wyszukiwania zakresu trzech elementów rozpoczynających się od pozycji 2. Zwraca wartość -1, ponieważ nie ma nazw dinozaurów w tym zakresie, które kończą się na "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>)
- Źródło:
- Array.cs
- Źródło:
- Array.cs
- Źródło:
- Array.cs
Wyszukuje element, który pasuje do warunków zdefiniowanych przez określony predykat, i zwraca indeks zerowy pierwszego wystąpienia w całym Arrayobiekcie .
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 elementów tablicy.
Parametry
- array
- T[]
Jednowymiarowe, zero Array oparte na wyszukiwaniu.
- match
- Predicate<T>
Element Predicate<T> definiujący warunki elementu do wyszukania.
Zwraca
Indeks oparty na zerze pierwszego wystąpienia elementu, który pasuje do warunków zdefiniowanych przez match
, jeśli zostanie znaleziony; w przeciwnym razie -1.
Wyjątki
Uwagi
Element Array jest przeszukiwany do przodu, zaczynając od pierwszego elementu i kończąc na ostatnim elemecie.
Element Predicate<T> jest delegatem do metody, która zwraca true
, jeśli obiekt przekazany do niego jest zgodny z warunkami zdefiniowanymi w delegatu. Elementy elementu array
są indywidualnie przekazywane do obiektu Predicate<T>.
Ta metoda jest operacją O(n
), gdzie n
jest operacją Length typu array
.
Zobacz też
- 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>
Dotyczy
FindIndex<T>(T[], Int32, Predicate<T>)
- Źródło:
- Array.cs
- Źródło:
- Array.cs
- Źródło:
- Array.cs
Wyszukuje element zgodny z warunkami zdefiniowanymi przez określony predykat i zwraca indeks oparty na zerze pierwszego wystąpienia w zakresie elementów w Array obiekcie, który rozciąga się od określonego indeksu do ostatniego elementu.
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 elementów tablicy.
Parametry
- array
- T[]
Jednowymiarowe, zero Array oparte na wyszukiwaniu.
- startIndex
- Int32
Wartość początkowa indeksu zaczynającego się od zera dla wyszukiwania.
- match
- Predicate<T>
Element Predicate<T> definiujący warunki elementu do wyszukania.
Zwraca
Indeks oparty na zerze pierwszego wystąpienia elementu, który pasuje do warunków zdefiniowanych przez match
, jeśli zostanie znaleziony; w przeciwnym razie -1.
Wyjątki
startIndex
znajduje się poza zakresem prawidłowych indeksów dla elementu array
.
Uwagi
Element Array jest wyszukiwany do przodu, zaczynając od startIndex
i kończąc na ostatnim elemecie.
Element Predicate<T> jest delegatem do metody, która zwraca true
, jeśli obiekt przekazany do niego jest zgodny z warunkami zdefiniowanymi w delegatu. Elementy elementu array
są indywidualnie przekazywane do obiektu Predicate<T>.
Ta metoda jest operacją O(n
), gdzie n
jest liczbą elementów od startIndex
do końca .array
Zobacz też
- 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>
Dotyczy
FindIndex<T>(T[], Int32, Int32, Predicate<T>)
- Źródło:
- Array.cs
- Źródło:
- Array.cs
- Źródło:
- Array.cs
Wyszukuje element zgodny z warunkami zdefiniowanymi przez określony predykat i zwraca indeks oparty na zerze pierwszego wystąpienia w zakresie elementów w Array obiekcie rozpoczynającym się od określonego indeksu i zawiera określoną liczbę elementów.
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 elementów tablicy.
Parametry
- array
- T[]
Jednowymiarowe, zero Array oparte na wyszukiwaniu.
- startIndex
- Int32
Wartość początkowa indeksu zaczynającego się od zera dla wyszukiwania.
- count
- Int32
Liczba elementów w sekcji do wyszukania.
- match
- Predicate<T>
Element Predicate<T> definiujący warunki elementu do wyszukania.
Zwraca
Indeks oparty na zerze pierwszego wystąpienia elementu, który pasuje do warunków zdefiniowanych przez match
, jeśli zostanie znaleziony; w przeciwnym razie -1.
Wyjątki
startIndex
znajduje się poza zakresem prawidłowych indeksów dla elementu array
.
-lub-
Parametr count
ma wartość niższą niż zero.
-lub-
startIndex
i count
nie należy określać prawidłowej sekcji w pliku array
.
Uwagi
Element Array jest wyszukiwany do przodu, zaczynając od startIndex
i kończąc na startIndex
plus count
minus 1, jeśli count
jest większy niż 0.
Element Predicate<T> jest delegatem do metody, która zwraca true
, jeśli obiekt przekazany do niego jest zgodny z warunkami zdefiniowanymi w delegatu. Elementy elementu array
są indywidualnie przekazywane do obiektu Predicate<T>.
Ta metoda jest operacją O(n
), gdzie n
to count
.
Zobacz też
- 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>