Array.FindLastIndex 메서드

정의

지정한 조건자에 정의된 조건과 일치하는 요소를 검색하여 Array 또는 그 일부에서 일치하는 요소 중 마지막 요소의 인덱스(0부터 시작)를 반환합니다.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.

오버로드

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

지정한 조건자에 정의된 조건과 일치하는 요소를 검색하여 전체 Array에서 일치하는 요소 중 마지막 요소의 인덱스(0부터 시작)를 반환합니다.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>)

지정된 조건자에 정의된 조건과 일치하는 요소를 검색하여 첫 번째 요소에서 지정된 인덱스로 확장하는 Array의 요소 범위에서 일치하는 요소 중 마지막 요소의 인덱스(0부터 시작)를 반환합니다.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>)

지정한 조건자에 정의된 조건과 일치하는 요소를 검색하여 지정한 수의 요소가 들어 있고 지정한 인덱스에서 끝나는 Array의 요소 범위에서 일치하는 요소 중 마지막 요소의 인덱스(0부터 시작)를 반환합니다.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>)

지정한 조건자에 정의된 조건과 일치하는 요소를 검색하여 전체 Array에서 일치하는 요소 중 마지막 요소의 인덱스(0부터 시작)를 반환합니다.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

형식 매개 변수

T

배열 요소의 형식입니다.The type of the elements of the array.

매개 변수

array
T[]

검색할 1차원 Array(인덱스는 0부터 시작)입니다.The one-dimensional, zero-based Array to search.

match
Predicate<T>

검색할 요소의 조건을 정의하는 Predicate<T>입니다.The Predicate<T> that defines the conditions of the element to search for.

반환

match에 정의된 조건과 일치하는 요소가 있으면 그 중 마지막 요소의 인덱스(0부터 시작)이고, 그렇지 않으면 -1입니다.The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, -1.

예외

arraynull인 경우array is null.

또는-or- matchnull입니다.match is null.

예제

다음 코드 예제에서는 FindLastIndex 제네릭 메서드의 세 오버 로드를 모두 보여 줍니다.The following code example demonstrates all three overloads of the FindLastIndex generic method. 8 개의 공룡 이름을 포함 하는 문자열 배열이 생성 됩니다. 여기에는 (위치 1과 5)이 "saurus"로 끝납니다.An array of strings is created, containing 8 dinosaur names, two of which (at positions 1 and 5) end with "saurus". 또한이 코드 예제에서는 문자열 매개 변수를 허용 하 고 입력 문자열이 "saurus"로 끝나는지 여부를 나타내는 부울 값을 반환 하는 EndsWithSaurus 이라는 검색 조건자 메서드를 정의 합니다.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".

FindLastIndex<T>(T[], Predicate<T>) 메서드 오버 로드는 배열을 끝에서 뒤로 이동 하 여 각 요소를 차례로 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. EndsWithSaurus 메서드가 위치 5의 요소에 대 한 true 반환 되 면 검색이 중지 됩니다.The search stops when the EndsWithSaurus method returns true for the element at position 5.

참고

C# 및 Visual Basic에서는 Predicate<string> 대리자 (Visual Basic의 Predicate(Of String))를 명시적으로 만들 필요가 없습니다.In C# and Visual Basic, it is not necessary to create the Predicate<string> delegate (Predicate(Of String) in Visual Basic) explicitly. 이러한 언어는 컨텍스트에서 올바른 대리자를 유추 하 고 자동으로 만듭니다.These languages infer the correct delegate from context and create it automatically.

FindLastIndex<T>(T[], Int32, Predicate<T>) 메서드 오버 로드는 위치 4에서 시작 하 여 배열의 시작 부분까지 계속 되는 배열을 검색 하는 데 사용 됩니다.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. 위치 1에서 요소를 찾습니다.It finds the element at position 1. 마지막으로 FindLastIndex<T>(T[], Int32, Int32, Predicate<T>) 메서드 오버 로드를 사용 하 여 위치 4에서 시작 하 고 뒤로 작업 하는 세 개의 요소 (즉, 요소 4, 3, 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). "Saurus"로 끝나는 공룡 이름이 없으므로-1을 반환 합니다.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

설명

Array 마지막 요소부터 뒤로 검색 하 여 첫 번째 요소에서 끝납니다.The Array is searched backward starting at the last element and ending at the first element.

Predicate<T>은 전달 된 개체가 대리자에 정의 된 조건과 일치 하는 경우 true를 반환 하는 메서드에 대 한 대리자입니다.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. array의 요소는 Predicate<T>에 개별적으로 전달 됩니다.The elements of array are individually passed to the Predicate<T>.

이 메서드는 O (n) 연산입니다. 여기서 narrayLength입니다.This method is an O(n) operation, where n is the Length of array.

추가 정보

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

지정된 조건자에 정의된 조건과 일치하는 요소를 검색하여 첫 번째 요소에서 지정된 인덱스로 확장하는 Array의 요소 범위에서 일치하는 요소 중 마지막 요소의 인덱스(0부터 시작)를 반환합니다.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

형식 매개 변수

T

배열 요소의 형식입니다.The type of the elements of the array.

매개 변수

array
T[]

검색할 1차원 Array(인덱스는 0부터 시작)입니다.The one-dimensional, zero-based Array to search.

startIndex
Int32

역방향 검색의 0부터 시작하는 인덱스입니다.The zero-based starting index of the backward search.

match
Predicate<T>

검색할 요소의 조건을 정의하는 Predicate<T>입니다.The Predicate<T> that defines the conditions of the element to search for.

반환

match에 정의된 조건과 일치하는 요소가 있으면 그 중 마지막 요소의 인덱스(0부터 시작)이고, 그렇지 않으면 -1입니다.The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, -1.

예외

arraynull입니다.array is null.

또는-or- matchnull입니다.match is null.

startIndexarray의 유효한 인덱스 범위를 벗어납니다.startIndex is outside the range of valid indexes for array.

예제

다음 코드 예제에서는 FindLastIndex 제네릭 메서드의 세 오버 로드를 모두 보여 줍니다.The following code example demonstrates all three overloads of the FindLastIndex generic method. 8 개의 공룡 이름을 포함 하는 문자열 배열이 생성 됩니다. 여기에는 (위치 1과 5)이 "saurus"로 끝납니다.An array of strings is created, containing 8 dinosaur names, two of which (at positions 1 and 5) end with "saurus". 또한이 코드 예제에서는 문자열 매개 변수를 허용 하 고 입력 문자열이 "saurus"로 끝나는지 여부를 나타내는 부울 값을 반환 하는 EndsWithSaurus 이라는 검색 조건자 메서드를 정의 합니다.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".

FindLastIndex<T>(T[], Predicate<T>) 메서드 오버 로드는 배열을 끝에서 뒤로 이동 하 여 각 요소를 차례로 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. EndsWithSaurus 메서드가 위치 5의 요소에 대 한 true 반환 되 면 검색이 중지 됩니다.The search stops when the EndsWithSaurus method returns true for the element at position 5.

참고

C# 및 Visual Basic에서는 Predicate<string> 대리자 (Visual Basic의 Predicate(Of String))를 명시적으로 만들 필요가 없습니다.In C# and Visual Basic, it is not necessary to create the Predicate<string> delegate (Predicate(Of String) in Visual Basic) explicitly. 이러한 언어는 컨텍스트에서 올바른 대리자를 유추 하 고 자동으로 만듭니다.These languages infer the correct delegate from context and create it automatically.

FindLastIndex<T>(T[], Int32, Predicate<T>) 메서드 오버 로드는 위치 4에서 시작 하 여 배열의 시작 부분까지 계속 되는 배열을 검색 하는 데 사용 됩니다.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. 위치 1에서 요소를 찾습니다.It finds the element at position 1. 마지막으로 FindLastIndex<T>(T[], Int32, Int32, Predicate<T>) 메서드 오버 로드를 사용 하 여 위치 4에서 시작 하 고 뒤로 작업 하는 세 개의 요소 (즉, 요소 4, 3, 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). "Saurus"로 끝나는 공룡 이름이 없으므로-1을 반환 합니다.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

설명

ArraystartIndex에서 시작 하 여 첫 번째 요소에서 끝나는 위치에서 뒤로 검색 됩니다.The Array is searched backward starting at startIndex and ending at the first element.

Predicate<T>은 전달 된 개체가 대리자에 정의 된 조건과 일치 하는 경우 true를 반환 하는 메서드에 대 한 대리자입니다.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. array의 요소는 Predicate<T>에 개별적으로 전달 됩니다.The elements of array are individually passed to the Predicate<T>.

이 메서드는 O (n) 작업입니다. 여기서 narray 시작부터 startIndex까지의 요소 수입니다.This method is an O(n) operation, where n is the number of elements from the beginning of array to startIndex.

추가 정보

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

지정한 조건자에 정의된 조건과 일치하는 요소를 검색하여 지정한 수의 요소가 들어 있고 지정한 인덱스에서 끝나는 Array의 요소 범위에서 일치하는 요소 중 마지막 요소의 인덱스(0부터 시작)를 반환합니다.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

형식 매개 변수

T

배열 요소의 형식입니다.The type of the elements of the array.

매개 변수

array
T[]

검색할 1차원 Array(인덱스는 0부터 시작)입니다.The one-dimensional, zero-based Array to search.

startIndex
Int32

역방향 검색의 0부터 시작하는 인덱스입니다.The zero-based starting index of the backward search.

count
Int32

검색할 섹션에 있는 요소 수입니다.The number of elements in the section to search.

match
Predicate<T>

검색할 요소의 조건을 정의하는 Predicate<T>입니다.The Predicate<T> that defines the conditions of the element to search for.

반환

match에 정의된 조건과 일치하는 요소가 있으면 그 중 마지막 요소의 인덱스(0부터 시작)이고, 그렇지 않으면 -1입니다.The zero-based index of the last occurrence of an element that matches the conditions defined by match, if found; otherwise, -1.

예외

arraynull입니다.array is null.

또는-or- matchnull입니다.match is null.

startIndexarray의 유효한 인덱스 범위를 벗어납니다.startIndex is outside the range of valid indexes for array.

또는-or- count가 0보다 작은 경우count is less than zero.

또는-or- startIndexcountarray의 올바른 섹션을 지정하지 않습니다.startIndex and count do not specify a valid section in array.

예제

다음 코드 예제에서는 FindLastIndex 제네릭 메서드의 세 오버 로드를 모두 보여 줍니다.The following code example demonstrates all three overloads of the FindLastIndex generic method. 8 개의 공룡 이름을 포함 하는 문자열 배열이 생성 됩니다. 여기에는 (위치 1과 5)이 "saurus"로 끝납니다.An array of strings is created, containing 8 dinosaur names, two of which (at positions 1 and 5) end with "saurus". 또한이 코드 예제에서는 문자열 매개 변수를 허용 하 고 입력 문자열이 "saurus"로 끝나는지 여부를 나타내는 부울 값을 반환 하는 EndsWithSaurus 이라는 검색 조건자 메서드를 정의 합니다.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".

FindLastIndex<T>(T[], Predicate<T>) 메서드 오버 로드는 배열을 끝에서 뒤로 이동 하 여 각 요소를 차례로 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. EndsWithSaurus 메서드가 위치 5의 요소에 대 한 true 반환 되 면 검색이 중지 됩니다.The search stops when the EndsWithSaurus method returns true for the element at position 5.

참고

C# 및 Visual Basic에서는 Predicate<string> 대리자 (Visual Basic의 Predicate(Of String))를 명시적으로 만들 필요가 없습니다.In C# and Visual Basic, it is not necessary to create the Predicate<string> delegate (Predicate(Of String) in Visual Basic) explicitly. 이러한 언어는 컨텍스트에서 올바른 대리자를 유추 하 고 자동으로 만듭니다.These languages infer the correct delegate from context and create it automatically.

FindLastIndex<T>(T[], Int32, Predicate<T>) 메서드 오버 로드는 위치 4에서 시작 하 여 배열의 시작 부분까지 계속 되는 배열을 검색 하는 데 사용 됩니다.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. 위치 1에서 요소를 찾습니다.It finds the element at position 1. 마지막으로 FindLastIndex<T>(T[], Int32, Int32, Predicate<T>) 메서드 오버 로드를 사용 하 여 위치 4에서 시작 하 고 뒤로 작업 하는 세 개의 요소 (즉, 요소 4, 3, 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). "Saurus"로 끝나는 공룡 이름이 없으므로-1을 반환 합니다.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

설명

ArraystartIndex부터 뒤로 검색 하 여 count startIndex에서 종료 하 고 count가 0 보다 큰 경우에는 1을 검색 합니다.The Array is searched backward starting at startIndex and ending at startIndex minus count plus 1, if count is greater than 0.

Predicate<T>은 전달 된 개체가 대리자에 정의 된 조건과 일치 하는 경우 true를 반환 하는 메서드에 대 한 대리자입니다.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. array의 요소는 Predicate<T>에 개별적으로 전달 됩니다.The elements of array are individually passed to the Predicate<T>.

이 메서드는 O (n) 작업, 여기서 ncount합니다.This method is an O(n) operation, where n is count.

추가 정보

적용 대상