C#의 Array.FindLast() 메서드는 지정된 조건자(Predicate)가 정의한 조건과 일치하는 요소를 배열에서 검색한 뒤, 전체 배열 범위에서 마지막으로 일치하는 요소를 반환합니다. 조건을 만족하는 요소가 여러 개일 때 마지막 값을 찾아야 하는 경우에 유용하게 사용됩니다.
구문(Syntax)
Array.FindLast() 메서드의 기본 구문은 다음과 같습니다.
public static T FindLast<T> (T[] array, Predicate<T> match);
각 매개변수의 의미는 다음과 같습니다.
- array: 검색 대상이 되는 1차원, 0부터 시작하는(0-based) 배열입니다.
- match: 검색할 요소의 조건을 정의하는
Predicate<T>델리게이트입니다.
조건과 일치하는 요소가 존재하면 해당 요소를 반환하고, 일치하는 요소가 없으면 타입 T의 기본값(default)을 반환합니다.
예제(Example)
이제 Array.FindLast() 메서드를 실제로 구현한 예제를 살펴보겠습니다.
using System;
public class Demo{
public static void Main(){
Console.WriteLine("배열 요소...");
string[] arr = { "car", "bike", "truck", "bus"};
for (int i = 0; i < arr.Length; i++){
Console.Write("{0} ", arr[i]);
}
Console.WriteLine();
string res = Array.FindLast(arr, ele => ele.StartsWith("b",
StringComparison.Ordinal));
Console.Write("
마지막 일치 항목...
");
Console.WriteLine("{0}", res);
}
}위 예제에서는 문자열 배열에서 문자 'b'로 시작하는 요소를 찾습니다. 람다 식 ele => ele.StartsWith("b", StringComparison.Ordinal)이 조건자 역할을 하며, FindLast()는 뒤에서부터 검색하여 조건에 맞는 마지막 요소를 반환합니다.
실행 결과(Output)
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
배열 요소... car bike truck bus 마지막 일치 항목... bus
배열에는 "bike"와 "bus" 두 요소가 모두 'b'로 시작하지만, FindLast()는 뒤에서부터 검색하기 때문에 마지막으로 일치하는 "bus"를 반환한 것을 확인할 수 있습니다.