C#의 Array.Find() 메서드는 지정된 조건자(predicate)로 정의된 조건과 일치하는 요소를 배열에서 검색하고, 전체 배열 중 첫 번째로 일치하는 요소를 반환하는 정적 메서드입니다. 조건을 만족하는 요소가 없으면 기본값(default)을 반환합니다.
문법
Array.Find() 메서드의 기본 문법은 다음과 같습니다.
public static T Find<T> (T[] array, Predicate<T> match);
매개변수 설명
- array: 검색 대상이 되는 1차원, 0부터 시작하는(0-based) 배열입니다.
- match: 검색할 요소의 조건을 정의하는 Predicate<T> 델리게이트입니다.
사용 예제
다음은 Array.Find() 메서드를 활용하여 't'로 시작하는 문자열 요소를 검색하는 예제입니다.
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.Find(arr, ele => ele.StartsWith("t",
StringComparison.Ordinal));
Console.Write("검색된 요소... ");
Console.Write("{0}", res);
}
}실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
배열 요소... car bike truck bus 검색된 요소... truck
핵심 포인트
- Array.Find()는 람다 식(lambda expression)과 함께 사용하면 간결하게 조건을 지정할 수 있습니다.
- 예제에서 사용한 StringComparison.Ordinal 옵션은 대소문자를 구분하는 정확한 문자열 비교를 수행합니다.
- 조건에 맞는 모든 요소를 찾으려면 Array.FindAll(), 마지막 일치 요소를 찾으려면 Array.FindLast()를 사용하면 됩니다.