C#에서 Array.BinarySearch 메서드를 사용하면 배열 안에서 특정 요소가 위치한 인덱스를 빠르게 찾을 수 있습니다. 이진 탐색(Binary Search) 알고리즘을 기반으로 하기 때문에 대용량 배열에서도 효율적으로 동작합니다.
문자열 배열 선언하기
먼저 다음과 같이 문자열 배열을 선언합니다.
string[] str = { "a", "m", "i", "t"};Array.BinarySearch로 요소 위치 구하기
이제 Array.BinarySearch 메서드에 배열과 찾으려는 값을 전달하여 문자 't'의 위치를 구할 수 있습니다.
Array.BinarySearch(str, "t");
전체 예제 코드
using System;
using System.Text;
public class Demo {
public static void Main() {
string[] str = { "a", "m", "i", "t"};
// BinarySearch 메서드를 사용해 문자 't'의 위치(인덱스)를 구함
int res = Array.BinarySearch(str, "t");
// 결과 출력
Console.WriteLine("Index : " + res);
}
}
실행 결과
Index : 3
위 예제에서 문자 't'는 배열의 네 번째 요소이므로 인덱스 3이 반환됩니다. C# 배열의 인덱스는 0부터 시작하기 때문입니다.
참고 사항
Array.BinarySearch는 배열이 오름차순으로 정렬되어 있다는 가정하에 동작합니다. 따라서 실무에서는 Array.Sort()로 배열을 먼저 정렬한 뒤 사용하는 것이 좋습니다. 정렬되지 않은 배열에 사용하면 엉뚱한 인덱스나 음수 값이 반환될 수 있으며, 찾는 값이 없을 경우에도 음수가 반환됩니다.