Array.FindLastIndex Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Söker efter ett element som matchar de villkor som definierats av ett angivet predikat och returnerar det nollbaserade indexet för den senaste förekomsten inom en Array eller en del av den.
Överlagringar
| Name | Description |
|---|---|
| FindLastIndex<T>(T[], Predicate<T>) |
Söker efter ett element som matchar de villkor som definierats av det angivna predikatet och returnerar det nollbaserade indexet för den senaste förekomsten i hela Array. |
| FindLastIndex<T>(T[], Int32, Predicate<T>) |
Söker efter ett element som matchar de villkor som definierats av det angivna predikatet och returnerar det nollbaserade indexet för den senaste förekomsten inom elementintervallet Array i som sträcker sig från det första elementet till det angivna indexet. |
| FindLastIndex<T>(T[], Int32, Int32, Predicate<T>) |
Söker efter ett element som matchar de villkor som definierats av det angivna predikatet och returnerar det nollbaserade indexet för den senaste förekomsten inom elementintervallet Array i som innehåller det angivna antalet element och slutar vid det angivna indexet. |
Exempel
I följande kodexempel visas alla tre överlagringarna av den FindLastIndex generiska metoden. En matris med strängar skapas, som innehåller 8 dinosaurienamn, varav två (på position 1 och 5) slutar med "saurus". Kodexemplet definierar också en sökpredikatmetod med namnet EndsWithSaurus, som accepterar en strängparameter och returnerar ett booleskt värde som anger om indatasträngen slutar med "saurus".
Metodöverlagringen FindLastIndex<T>(T[], Predicate<T>) passerar matrisen bakåt från slutet och skickar varje element i tur och ordning till EndsWithSaurus metoden. Sökningen stoppas EndsWithSaurus när metoden returnerar true för elementet vid position 5.
Note
I C#, F# och Visual Basic är det inte nödvändigt att skapa ombudet Predicate<string> (Predicate(Of String) i Visual Basic) explicit. Dessa språk härleder rätt ombud från kontexten och skapar det automatiskt.
Metodens FindLastIndex<T>(T[], Int32, Predicate<T>) överlagring används för att söka i matrisen med början vid position 4 och fortsätta bakåt till början av matrisen. Den hittar elementet vid position 1. Slutligen används metodöverlagringen FindLastIndex<T>(T[], Int32, Int32, Predicate<T>) för att söka i intervallet med tre element som börjar vid position 4 och arbetar bakåt (det vill: elementen 4, 3 och 2). Den returnerar -1 eftersom det inte finns några dinosaurienamn i det intervallet som slutar med "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.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>)
- Källa:
- Array.cs
- Källa:
- Array.cs
- Källa:
- Array.cs
- Källa:
- Array.cs
- Källa:
- Array.cs
Söker efter ett element som matchar de villkor som definierats av det angivna predikatet och returnerar det nollbaserade indexet för den senaste förekomsten i hela Array.
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
Typparametrar
- T
Typ av element i matrisen.
Parametrar
- array
- T[]
Den endimensionella, nollbaserade sökfunktionen Array .
- match
- Predicate<T>
Det Predicate<T> som definierar villkoren för elementet som ska sökas efter.
Returer
Det nollbaserade indexet för den senaste förekomsten av ett element som matchar de villkor som definieras av match, om det hittas, annars -1.
Undantag
Kommentarer
Array Söks bakåt med början vid det sista elementet och slutar vid det första elementet.
Predicate<T> är ett ombud till en metod som returnerar true om objektet som skickas till det matchar de villkor som definierats i ombudet. Elementen array i skickas individuellt till Predicate<T>.
Den här metoden är en O()-nåtgärd, där n är för Lengtharray.
Se även
- 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>
Gäller för
FindLastIndex<T>(T[], Int32, Predicate<T>)
- Källa:
- Array.cs
- Källa:
- Array.cs
- Källa:
- Array.cs
- Källa:
- Array.cs
- Källa:
- Array.cs
Söker efter ett element som matchar de villkor som definierats av det angivna predikatet och returnerar det nollbaserade indexet för den senaste förekomsten inom elementintervallet Array i som sträcker sig från det första elementet till det angivna indexet.
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
Typparametrar
- T
Typ av element i matrisen.
Parametrar
- array
- T[]
Den endimensionella, nollbaserade sökfunktionen Array .
- startIndex
- Int32
Det nollbaserade startindexet för bakåtsökningen.
- match
- Predicate<T>
Det Predicate<T> som definierar villkoren för elementet som ska sökas efter.
Returer
Det nollbaserade indexet för den senaste förekomsten av ett element som matchar de villkor som definieras av match, om det hittas, annars -1.
Undantag
startIndex ligger utanför intervallet för giltiga index för array.
Kommentarer
Array Söks bakåt med början vid startIndex och slutar vid det första elementet.
Predicate<T> är ett ombud till en metod som returnerar true om objektet som skickas till det matchar de villkor som definierats i ombudet. Elementen array i skickas individuellt till Predicate<T>.
Den här metoden är en O(n)-åtgärd, där n är antalet element från början av array till startIndex.
Se även
- 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>
Gäller för
FindLastIndex<T>(T[], Int32, Int32, Predicate<T>)
- Källa:
- Array.cs
- Källa:
- Array.cs
- Källa:
- Array.cs
- Källa:
- Array.cs
- Källa:
- Array.cs
Söker efter ett element som matchar de villkor som definierats av det angivna predikatet och returnerar det nollbaserade indexet för den senaste förekomsten inom elementintervallet Array i som innehåller det angivna antalet element och slutar vid det angivna indexet.
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
Typparametrar
- T
Typ av element i matrisen.
Parametrar
- array
- T[]
Den endimensionella, nollbaserade sökfunktionen Array .
- startIndex
- Int32
Det nollbaserade startindexet för bakåtsökningen.
- count
- Int32
Antalet element i avsnittet som ska sökas.
- match
- Predicate<T>
Det Predicate<T> som definierar villkoren för elementet som ska sökas efter.
Returer
Det nollbaserade indexet för den senaste förekomsten av ett element som matchar de villkor som definieras av match, om det hittas, annars -1.
Undantag
startIndex ligger utanför intervallet för giltiga index för array.
-eller-
count är mindre än noll.
-eller-
startIndex och count ange inte ett giltigt avsnitt i array.
Kommentarer
Array Söks bakåt med början vid startIndex och slutar på startIndex minus count plus 1, om count är större än 0.
Predicate<T> är ett ombud till en metod som returnerar true om objektet som skickas till det matchar de villkor som definierats i ombudet. Elementen array i skickas individuellt till Predicate<T>.
Den här metoden är en O()-nåtgärd, där n är count.
Se även
- 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>