Array.FindLastIndex Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Sucht nach einem Element, das die durch ein angegebenes Prädikat definierten Bedingungen erfüllt, und gibt den nullbasierten Index des letzten Vorkommens in einer Array oder einem Teil davon zurück.
Überlädt
FindLastIndex<T>(T[], Predicate<T>) |
Sucht nach einem Element, das die durch das angegebene Prädikat definierten Bedingungen erfüllt, und gibt den nullbasierten Index des letzten Vorkommens im gesamten Array zurück. |
FindLastIndex<T>(T[], Int32, Predicate<T>) |
Sucht nach einem Element, das die durch das angegebene Prädikat definierten Bedingungen erfüllt, und gibt den nullbasierten Index des letzten Vorkommens innerhalb des Bereichs von Elementen im Array zurück, der vom ersten Element bis zum angegeben Index reicht. |
FindLastIndex<T>(T[], Int32, Int32, Predicate<T>) |
Sucht nach einem Element, das die durch das angegebene Prädikat definierten Bedingungen erfüllt, und gibt den nullbasierten Index des ersten Vorkommens innerhalb des Bereichs von Elementen im Array zurück, der die angegebene Anzahl von Elementen umfasst und am angegebenen Index endet. |
Beispiele
Im folgenden Codebeispiel werden alle drei Überladungen der FindLastIndex generischen Methode veranschaulicht. Es wird ein Array von Zeichenfolgen erstellt, das 8 Dinosauriernamen enthält, von denen zwei (an Positionen 1 und 5) mit "saurus" enden. Das Codebeispiel definiert auch eine Suchprädikatmethode namens EndsWithSaurus
, die einen Zeichenfolgenparameter akzeptiert und einen booleschen Wert zurückgibt, der angibt, ob die Eingabezeichenfolge mit "saurus" endet.
Die FindLastIndex<T>(T[], Predicate<T>) Methodenüberladung durchläuft das Array vom Ende rückwärts und übergibt jedes Element wiederum an die EndsWithSaurus
-Methode. Die Suche wird beendet, wenn die EndsWithSaurus
Methode für das Element an Position 5 zurückgibt true
.
Hinweis
In C#, F# und Visual Basic ist es nicht erforderlich, den Predicate<string>
Delegaten (Predicate(Of String)
in Visual Basic) explizit zu erstellen. Diese Sprachen schließen den richtigen Delegat aus dem Kontext ab und erstellen ihn automatisch.
Die FindLastIndex<T>(T[], Int32, Predicate<T>) Methodenüberladung wird verwendet, um das Array ab Position 4 zu durchsuchen und rückwärts bis zum Anfang des Arrays fortzusetzen. Das Element wird an Position 1 gefunden. Schließlich wird die FindLastIndex<T>(T[], Int32, Int32, Predicate<T>) Methodenüberladung verwendet, um den Bereich von drei Elementen zu durchsuchen, die an Position 4 beginnen und rückwärts arbeiten (d. a. Elemente 4, 3 und 2). Es gibt -1 zurück, weil es keine Dinosauriernamen in diesem Bereich gibt, die mit "saurus" enden.
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::FindLastIndex(dinosaurs, EndsWithSaurus): {0}",
Array::FindLastIndex(dinosaurs, gcnew Predicate<String^>(EndsWithSaurus)));
Console::WriteLine("\nArray::FindLastIndex(dinosaurs, 4, EndsWithSaurus): {0}",
Array::FindLastIndex(dinosaurs, 4, gcnew Predicate<String^>(EndsWithSaurus)));
Console::WriteLine("\nArray::FindLastIndex(dinosaurs, 4, 3, EndsWithSaurus): {0}",
Array::FindLastIndex(dinosaurs, 4, 3, gcnew Predicate<String^>(EndsWithSaurus)));
}
/* 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
*/
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>)
- Quelle:
- Array.cs
- Quelle:
- Array.cs
- Quelle:
- Array.cs
Sucht nach einem Element, das die durch das angegebene Prädikat definierten Bedingungen erfüllt, und gibt den nullbasierten Index des letzten Vorkommens im gesamten Array zurück.
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
Typparameter
- T
Der Typ der Elemente des Arrays.
Parameter
- array
- T[]
Das zu durchsuchende eindimensionale und nullbasierte Array.
- match
- Predicate<T>
Das Predicate<T>, das die Bedingungen für das Element definiert, nach dem gesucht werden soll.
Gibt zurück
Der nullbasierte Index des letzten Vorkommnisses eines Elements, das mit den durch match
definierten Bedingungen übereinstimmt, sofern gefunden, andernfalls –1.
Ausnahmen
Hinweise
Die Array wird rückwärts gesucht, beginnend beim letzten Element und endend beim ersten Element.
ist Predicate<T> ein Delegat an eine Methode, die zurückgibt true
, wenn das an sie übergebene Objekt den im Delegaten definierten Bedingungen entspricht. Die Elemente von array
werden einzeln an die Predicate<T>übergeben.
Diese Methode ist ein O(n
)-Vorgang, wobei n
der Length von array
ist.
Weitere Informationen
- 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>
Gilt für:
FindLastIndex<T>(T[], Int32, Predicate<T>)
- Quelle:
- Array.cs
- Quelle:
- Array.cs
- Quelle:
- Array.cs
Sucht nach einem Element, das die durch das angegebene Prädikat definierten Bedingungen erfüllt, und gibt den nullbasierten Index des letzten Vorkommens innerhalb des Bereichs von Elementen im Array zurück, der vom ersten Element bis zum angegeben Index reicht.
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
Typparameter
- T
Der Typ der Elemente des Arrays.
Parameter
- array
- T[]
Das zu durchsuchende eindimensionale und nullbasierte Array.
- startIndex
- Int32
Der nullbasierte Startindex für die Rückwärtssuche.
- match
- Predicate<T>
Das Predicate<T>, das die Bedingungen für das Element definiert, nach dem gesucht werden soll.
Gibt zurück
Der nullbasierte Index des letzten Vorkommnisses eines Elements, das mit den durch match
definierten Bedingungen übereinstimmt, sofern gefunden, andernfalls –1.
Ausnahmen
startIndex
liegt außerhalb des Bereichs der gültigen Indizes für array
.
Hinweise
Wird Array rückwärts gesucht, beginnend am startIndex
ersten Element und endend.
ist Predicate<T> ein Delegat an eine Methode, die zurückgibt true
, wenn das an sie übergebene Objekt den im Delegaten definierten Bedingungen entspricht. Die Elemente von array
werden einzeln an die Predicate<T>übergeben.
Bei dieser Methode handelt es sich um einen O(n
)-Vorgang, wobei n
die Anzahl der Elemente vom Anfang bis array
zu startIndex
ist.
Weitere Informationen
- 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>
Gilt für:
FindLastIndex<T>(T[], Int32, Int32, Predicate<T>)
- Quelle:
- Array.cs
- Quelle:
- Array.cs
- Quelle:
- Array.cs
Sucht nach einem Element, das die durch das angegebene Prädikat definierten Bedingungen erfüllt, und gibt den nullbasierten Index des ersten Vorkommens innerhalb des Bereichs von Elementen im Array zurück, der die angegebene Anzahl von Elementen umfasst und am angegebenen Index endet.
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
Typparameter
- T
Der Typ der Elemente des Arrays.
Parameter
- array
- T[]
Das zu durchsuchende eindimensionale und nullbasierte Array.
- startIndex
- Int32
Der nullbasierte Startindex für die Rückwärtssuche.
- count
- Int32
Die Anzahl der Elemente im zu durchsuchenden Abschnitt.
- match
- Predicate<T>
Das Predicate<T>, das die Bedingungen für das Element definiert, nach dem gesucht werden soll.
Gibt zurück
Der nullbasierte Index des letzten Vorkommnisses eines Elements, das mit den durch match
definierten Bedingungen übereinstimmt, sofern gefunden, andernfalls –1.
Ausnahmen
startIndex
liegt außerhalb des Bereichs der gültigen Indizes für array
.
- oder -
count
ist kleiner als Null.
- oder -
startIndex
und count
geben keinen gültigen Abschnitt im array
an.
Hinweise
Die Array wird rückwärts gesucht, beginnend bei startIndex
und endet bei startIndex
minus count
plus 1, wenn count
größer als 0 ist.
ist Predicate<T> ein Delegat an eine Methode, die zurückgibt true
, wenn das an sie übergebene Objekt den im Delegaten definierten Bedingungen entspricht. Die Elemente von array
werden einzeln an die Predicate<T>übergeben.
Bei dieser Methode handelt es sich um einen O(n
)-Vorgang, wobei n
ist count
.
Weitere Informationen
- 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>