Array.FindLastIndex Array.FindLastIndex Array.FindLastIndex Array.FindLastIndex Method

Definicja

Wyszukuje element, który odpowiada warunkom zdefiniowanym przez określony predykat, i zwraca indeks (liczony od zera) ostatniego wystąpienia w Array lub jego części.Searches for an element that matches the conditions defined by a specified predicate, and returns the zero-based index of the last occurrence within an Array or a portion of it.

Przeciążenia

FindLastIndex<T>(T[], Predicate<T>) FindLastIndex<T>(T[], Predicate<T>) FindLastIndex<T>(T[], Predicate<T>) FindLastIndex<T>(T[], Predicate<T>)

Wyszukuje element, który odpowiada warunkom zdefiniowanym przez określony predykat, i zwraca indeks (liczony od zera) ostatniego wystąpienia w całym Array.Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the entire Array.

FindLastIndex<T>(T[], Int32, Predicate<T>) FindLastIndex<T>(T[], Int32, Predicate<T>) FindLastIndex<T>(T[], Int32, Predicate<T>) FindLastIndex<T>(T[], Int32, Predicate<T>)

Wyszukuje element, który odpowiada warunkom zdefiniowanym przez określony predykat, i zwraca indeks (liczony od zera) ostatniego wystąpienia w zakresie elementów w Array, który rozciąga się od pierwszego elementu do określonego indeksu.Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the range of elements in the Array that extends from the first element to the specified index.

FindLastIndex<T>(T[], Int32, Int32, Predicate<T>) FindLastIndex<T>(T[], Int32, Int32, Predicate<T>) FindLastIndex<T>(T[], Int32, Int32, Predicate<T>) FindLastIndex<T>(T[], Int32, Int32, Predicate<T>)

Wyszukuje element, który odpowiada warunkom zdefiniowanym przez określony predykat, i zwraca indeks (liczony od zera) ostatniego wystąpienia w zakresie elementów w Array, który zawiera określoną liczbę elementów i kończą się o określonym indeksie. .Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the range of elements in the Array that contains the specified number of elements and ends at the specified index.

FindLastIndex<T>(T[], Predicate<T>) FindLastIndex<T>(T[], Predicate<T>) FindLastIndex<T>(T[], Predicate<T>) FindLastIndex<T>(T[], Predicate<T>)

Wyszukuje element, który odpowiada warunkom zdefiniowanym przez określony predykat, i zwraca indeks (liczony od zera) ostatniego wystąpienia w całym Array.Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the entire 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

Parametry typu

T

Typ elementów tablicy.The type of the elements of the array.

Parametry

array
T[]

Jednowymiarowe, zależne od zera Array do wyszukania.The one-dimensional, zero-based Array to search.

match
Predicate<T> Predicate<T> Predicate<T> Predicate<T>

@No__t-0 definiuje warunki elementu do wyszukania.The Predicate<T> that defines the conditions of the element to search for.

Zwraca

Indeks (liczony od zera) ostatniego wystąpienia elementu, który jest zgodny z warunkami zdefiniowanymi przez match, jeśli znaleziono; w przeciwnym razie-1.The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, -1.

Wyjątki

array jest null.array is null.

—lub—-or- match jest null.match is null.

Przykłady

Poniższy przykład kodu demonstruje wszystkie trzy przeciążenia metody ogólnej FindLastIndex.The following code example demonstrates all three overloads of the FindLastIndex generic method. 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”.An array of strings is created, containing 8 dinosaur names, two of which (at positions 1 and 5) end with "saurus". W przykładzie kodu jest również definiowana Metoda wyszukiwania predykatu o nazwie EndsWithSaurus, która akceptuje parametr ciągu i zwraca wartość logiczną wskazującą, czy ciąg wejściowy jest kończący się na "saurus".The code example also defines a search predicate method named EndsWithSaurus, which accepts a string parameter and returns a Boolean value indicating whether the input string ends in "saurus".

Przeciążenie metody FindLastIndex<T>(T[], Predicate<T>) przechodzi tablicę do tyłu od końca, przekazując każdy element z kolei do metody EndsWithSaurus.The FindLastIndex<T>(T[], Predicate<T>) method overload traverses the array backward from the end, passing each element in turn to the EndsWithSaurus method. Wyszukiwanie jest zatrzymywane, gdy metoda EndsWithSaurus zwraca true dla elementu na pozycji 5.The search stops when the EndsWithSaurus method returns true for the element at position 5.

Uwaga

W C# i Visual Basic nie jest konieczne jawne utworzenie delegata Predicate<string> (Predicate(Of String) w Visual Basic).In C# and Visual Basic, it is not necessary to create the Predicate<string> delegate (Predicate(Of String) in Visual Basic) explicitly. Te języki wnioskują o poprawnym delegacie z kontekstu, a następnie są tworzone automatycznie.These languages infer the correct delegate from context and create it automatically.

Przeciążenie metody FindLastIndex<T>(T[], Int32, Predicate<T>) służy do przeszukiwania tablicy rozpoczynającej się w pozycji 4 i kontynuowania do początku tablicy.The FindLastIndex<T>(T[], Int32, Predicate<T>) method overload is used to search the array beginning at position 4 and continuing backward to the beginning of the array. Znajduje element na pozycji 1.It finds the element at position 1. Na koniec Przeciążenie metody FindLastIndex<T>(T[], Int32, Int32, Predicate<T>) służy do przeszukiwania zakresu trzech elementów, zaczynając od pozycji 4 i działającej wstecz (czyli elementów 4, 3 i 2).Finally, the FindLastIndex<T>(T[], Int32, Int32, Predicate<T>) method overload is used to search the range of three elements beginning at position 4 and working backward (that is, elements 4, 3, and 2). Zwraca wartość-1, ponieważ w tym zakresie nie ma nazw dinozaurów kończących się na "saurus".It returns -1 because there are no dinosaur names in that range that end with "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::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
 */
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

Uwagi

@No__t-0 jest przeszukiwany wstecz od ostatniego elementu i kończąc na pierwszym elemencie.The Array is searched backward starting at the last element and ending at the first element.

@No__t-0 jest delegatem metody, która zwraca true, jeśli obiekt przeszedł do niego, jest zgodny z warunkami zdefiniowanymi w obiekcie delegowanym.The Predicate<T> is a delegate to a method that returns true if the object passed to it matches the conditions defined in the delegate. Elementy array są indywidualnie przenoszone do Predicate<T>.The elements of array are individually passed to the Predicate<T>.

Ta metoda jest operacją O (n), gdzie n jest Length array.This method is an O(n) operation, where n is the Length of array.

Zobacz też

FindLastIndex<T>(T[], Int32, Predicate<T>) FindLastIndex<T>(T[], Int32, Predicate<T>) FindLastIndex<T>(T[], Int32, Predicate<T>) FindLastIndex<T>(T[], Int32, Predicate<T>)

Wyszukuje element, który odpowiada warunkom zdefiniowanym przez określony predykat, i zwraca indeks (liczony od zera) ostatniego wystąpienia w zakresie elementów w Array, który rozciąga się od pierwszego elementu do określonego indeksu.Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the range of elements in the Array that extends from the first element to the specified index.

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

Parametry typu

T

Typ elementów tablicy.The type of the elements of the array.

Parametry

array
T[]

Jednowymiarowe, zależne od zera Array do wyszukania.The one-dimensional, zero-based Array to search.

startIndex
Int32 Int32 Int32 Int32

Wartość początkowa indeksu zaczynającego się od zera dla wyszukiwania wstecznego.The zero-based starting index of the backward search.

match
Predicate<T> Predicate<T> Predicate<T> Predicate<T>

@No__t-0 definiuje warunki elementu do wyszukania.The Predicate<T> that defines the conditions of the element to search for.

Zwraca

Indeks (liczony od zera) ostatniego wystąpienia elementu, który jest zgodny z warunkami zdefiniowanymi przez match, jeśli znaleziono; w przeciwnym razie-1.The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, -1.

Wyjątki

array jest null.array is null.

—lub—-or- match jest null.match is null.

startIndex znajduje się poza zakresem prawidłowych indeksów dla array.startIndex is outside the range of valid indexes for array.

Przykłady

Poniższy przykład kodu demonstruje wszystkie trzy przeciążenia metody ogólnej FindLastIndex.The following code example demonstrates all three overloads of the FindLastIndex generic method. 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”.An array of strings is created, containing 8 dinosaur names, two of which (at positions 1 and 5) end with "saurus". W przykładzie kodu jest również definiowana Metoda wyszukiwania predykatu o nazwie EndsWithSaurus, która akceptuje parametr ciągu i zwraca wartość logiczną wskazującą, czy ciąg wejściowy jest kończący się na "saurus".The code example also defines a search predicate method named EndsWithSaurus, which accepts a string parameter and returns a Boolean value indicating whether the input string ends in "saurus".

Przeciążenie metody FindLastIndex<T>(T[], Predicate<T>) przechodzi tablicę do tyłu od końca, przekazując każdy element z kolei do metody EndsWithSaurus.The FindLastIndex<T>(T[], Predicate<T>) method overload traverses the array backward from the end, passing each element in turn to the EndsWithSaurus method. Wyszukiwanie jest zatrzymywane, gdy metoda EndsWithSaurus zwraca true dla elementu na pozycji 5.The search stops when the EndsWithSaurus method returns true for the element at position 5.

Uwaga

W C# i Visual Basic nie jest konieczne jawne utworzenie delegata Predicate<string> (Predicate(Of String) w Visual Basic).In C# and Visual Basic, it is not necessary to create the Predicate<string> delegate (Predicate(Of String) in Visual Basic) explicitly. Te języki wnioskują o poprawnym delegacie z kontekstu, a następnie są tworzone automatycznie.These languages infer the correct delegate from context and create it automatically.

Przeciążenie metody FindLastIndex<T>(T[], Int32, Predicate<T>) służy do przeszukiwania tablicy rozpoczynającej się w pozycji 4 i kontynuowania do początku tablicy.The FindLastIndex<T>(T[], Int32, Predicate<T>) method overload is used to search the array beginning at position 4 and continuing backward to the beginning of the array. Znajduje element na pozycji 1.It finds the element at position 1. Na koniec Przeciążenie metody FindLastIndex<T>(T[], Int32, Int32, Predicate<T>) służy do przeszukiwania zakresu trzech elementów, zaczynając od pozycji 4 i działającej wstecz (czyli elementów 4, 3 i 2).Finally, the FindLastIndex<T>(T[], Int32, Int32, Predicate<T>) method overload is used to search the range of three elements beginning at position 4 and working backward (that is, elements 4, 3, and 2). Zwraca wartość-1, ponieważ w tym zakresie nie ma nazw dinozaurów kończących się na "saurus".It returns -1 because there are no dinosaur names in that range that end with "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::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
 */
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

Uwagi

@No__t-0 jest przeszukiwany wstecz, zaczynając od startIndex i kończąc na pierwszym elemencie.The Array is searched backward starting at startIndex and ending at the first element.

@No__t-0 jest delegatem metody, która zwraca true, jeśli obiekt przeszedł do niego, jest zgodny z warunkami zdefiniowanymi w obiekcie delegowanym.The Predicate<T> is a delegate to a method that returns true if the object passed to it matches the conditions defined in the delegate. Elementy array są indywidualnie przenoszone do Predicate<T>.The elements of array are individually passed to the Predicate<T>.

Ta metoda jest operacją O (n), gdzie n jest liczbą elementów od początku array do startIndex.This method is an O(n) operation, where n is the number of elements from the beginning of array to startIndex.

Zobacz też

FindLastIndex<T>(T[], Int32, Int32, Predicate<T>) FindLastIndex<T>(T[], Int32, Int32, Predicate<T>) FindLastIndex<T>(T[], Int32, Int32, Predicate<T>) FindLastIndex<T>(T[], Int32, Int32, Predicate<T>)

Wyszukuje element, który odpowiada warunkom zdefiniowanym przez określony predykat, i zwraca indeks (liczony od zera) ostatniego wystąpienia w zakresie elementów w Array, który zawiera określoną liczbę elementów i kończą się o określonym indeksie. .Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the range of elements in the Array that contains the specified number of elements and ends at the specified index.

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

Parametry typu

T

Typ elementów tablicy.The type of the elements of the array.

Parametry

array
T[]

Jednowymiarowe, zależne od zera Array do wyszukania.The one-dimensional, zero-based Array to search.

startIndex
Int32 Int32 Int32 Int32

Wartość początkowa indeksu zaczynającego się od zera dla wyszukiwania wstecznego.The zero-based starting index of the backward search.

count
Int32 Int32 Int32 Int32

Liczba elementów w sekcji do wyszukania.The number of elements in the section to search.

match
Predicate<T> Predicate<T> Predicate<T> Predicate<T>

@No__t-0 definiuje warunki elementu do wyszukania.The Predicate<T> that defines the conditions of the element to search for.

Zwraca

Indeks (liczony od zera) ostatniego wystąpienia elementu, który jest zgodny z warunkami zdefiniowanymi przez match, jeśli znaleziono; w przeciwnym razie-1.The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, -1.

Wyjątki

array jest null.array is null.

—lub—-or- match jest null.match is null.

startIndex znajduje się poza zakresem prawidłowych indeksów dla array.startIndex is outside the range of valid indexes for array.

—lub—-or- count jest mniejsza od zera.count is less than zero.

—lub—-or- startIndex i count nie określają prawidłowej sekcji w array.startIndex and count do not specify a valid section in array.

Przykłady

Poniższy przykład kodu demonstruje wszystkie trzy przeciążenia metody ogólnej FindLastIndex.The following code example demonstrates all three overloads of the FindLastIndex generic method. 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”.An array of strings is created, containing 8 dinosaur names, two of which (at positions 1 and 5) end with "saurus". W przykładzie kodu jest również definiowana Metoda wyszukiwania predykatu o nazwie EndsWithSaurus, która akceptuje parametr ciągu i zwraca wartość logiczną wskazującą, czy ciąg wejściowy jest kończący się na "saurus".The code example also defines a search predicate method named EndsWithSaurus, which accepts a string parameter and returns a Boolean value indicating whether the input string ends in "saurus".

Przeciążenie metody FindLastIndex<T>(T[], Predicate<T>) przechodzi tablicę do tyłu od końca, przekazując każdy element z kolei do metody EndsWithSaurus.The FindLastIndex<T>(T[], Predicate<T>) method overload traverses the array backward from the end, passing each element in turn to the EndsWithSaurus method. Wyszukiwanie jest zatrzymywane, gdy metoda EndsWithSaurus zwraca true dla elementu na pozycji 5.The search stops when the EndsWithSaurus method returns true for the element at position 5.

Uwaga

W C# i Visual Basic nie jest konieczne jawne utworzenie delegata Predicate<string> (Predicate(Of String) w Visual Basic).In C# and Visual Basic, it is not necessary to create the Predicate<string> delegate (Predicate(Of String) in Visual Basic) explicitly. Te języki wnioskują o poprawnym delegacie z kontekstu, a następnie są tworzone automatycznie.These languages infer the correct delegate from context and create it automatically.

Przeciążenie metody FindLastIndex<T>(T[], Int32, Predicate<T>) służy do przeszukiwania tablicy rozpoczynającej się w pozycji 4 i kontynuowania do początku tablicy.The FindLastIndex<T>(T[], Int32, Predicate<T>) method overload is used to search the array beginning at position 4 and continuing backward to the beginning of the array. Znajduje element na pozycji 1.It finds the element at position 1. Na koniec Przeciążenie metody FindLastIndex<T>(T[], Int32, Int32, Predicate<T>) służy do przeszukiwania zakresu trzech elementów, zaczynając od pozycji 4 i działającej wstecz (czyli elementów 4, 3 i 2).Finally, the FindLastIndex<T>(T[], Int32, Int32, Predicate<T>) method overload is used to search the range of three elements beginning at position 4 and working backward (that is, elements 4, 3, and 2). Zwraca wartość-1, ponieważ w tym zakresie nie ma nazw dinozaurów kończących się na "saurus".It returns -1 because there are no dinosaur names in that range that end with "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::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
 */
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

Uwagi

@No__t-0 jest przeszukiwany wstecz, zaczynając od startIndex i kończące się na startIndex minus count Plus 1, jeśli count jest większy niż 0.The Array is searched backward starting at startIndex and ending at startIndex minus count plus 1, if count is greater than 0.

@No__t-0 jest delegatem metody, która zwraca true, jeśli obiekt przeszedł do niego, jest zgodny z warunkami zdefiniowanymi w obiekcie delegowanym.The Predicate<T> is a delegate to a method that returns true if the object passed to it matches the conditions defined in the delegate. Elementy array są indywidualnie przenoszone do Predicate<T>.The elements of array are individually passed to the Predicate<T>.

Ta metoda jest operacją O (n), gdzie n jest count.This method is an O(n) operation, where n is count.

Zobacz też

Dotyczy