이 문서는 기계 번역을 이용하여 번역되었습니다. 문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

Array.BinarySearch<T> 메서드 (T[], Int32, Int32, T, IComparer<T>)

 

지정한 IComparer<T> 제네릭 인터페이스를 사용하여 1차원으로 정렬된 배열의 요소 범위에서 값을 검색합니다.

네임스페이스:   System
어셈블리:  mscorlib(mscorlib.dll에 있음)

public static int BinarySearch<T>(
	T[] array,
	int index,
	int length,
	T value,
	IComparer<T> comparer
)

매개 변수

array
Type: T[]

검색할 정렬된 1차원 Array(0부터 시작)입니다.

index
Type: System.Int32

검색할 범위의 시작 인덱스입니다.

length
Type: System.Int32

검색할 범위의 길이입니다.

value
Type: T

검색할 개체입니다.

comparer
Type: System.Collections.Generic.IComparer<T>

요소를 비교할 때 사용하는 IComparer<T> 구현입니다.

또는

각 요소의 IComparable<T> 구현을 사용할 null입니다.

반환 값

Type: System.Int32

value가 있는 경우 지정된 array에 있는 지정된 value의 인덱스이고, 그렇지 않으면 음수입니다. value가 없고 valuearray에 있는 하나 이상의 요소보다 작은 경우 value보다 큰 첫째 요소 인덱스의 비트 보수인 음수가 반환됩니다. value가 없고 valuearray에 있는 모든 요소보다 큰 경우 마지막 요소에 1을 더한 인덱스의 비트 보수인 음수가 반환됩니다. 이 메서드가 정렬되지 않은 array를 사용하여 호출되면 valuearray에 있더라도 반환 값이 올바르지 않고 음수가 반환될 수 있습니다.

형식 매개 변수

T

배열 요소의 형식입니다.

Exception Condition
ArgumentNullException

arraynull인 경우

ArgumentOutOfRangeException

indexarray의 하한값보다 작습니다.

또는

length가 0보다 작은 경우

ArgumentException

indexlengtharray의 올바른 범위를 지정하지 않습니다.

또는

comparernull이고 valuearray의 요소와 호환되지 않는 형식입니다.

InvalidOperationException

comparernull이고 TIComparable<T> 제네릭 인터페이스를 구현하지 않습니다.

이 메서드는 음수 인덱스를 포함 하는 검색 배열을 지원 하지 않습니다. array이 메서드를 호출 하기 전에 정렬 되어야 합니다.

배열에 지정된 된 값이 없는 경우 메서드는 음의 정수를 반환 합니다. 비트 보수 연산자를 적용할 수 있습니다 (~ C#에서는 Not Visual basic에서) 하는 인덱스를 생성할 음수 결과를 합니다. 이 인덱스 배열 크기와 같은지는 요소가 없습니다 보다 큰 value 배열에 있습니다. 그렇지 않으면 첫 번째 요소 보다 큰 인덱스를은 value합니다.

비교자는 요소를 비교 하는 방법을 사용자 지정 합니다. 예를 들어, 사용할 수는 System.Collections.CaseInsensitiveComparer 으로 대/소문자 구분 문자열 검색을 수행 하는 비교자입니다.

경우 comparer 않습니다 null, 요소의 array 사용 하 여 지정된 된 값과 비교할 IComparer<T> 제네릭 인터페이스를 구현 합니다. 요소 array 값으로 정의 된 정렬 순서에 따라 증가 하도록 정렬 되어 있어야 comparer, 그렇지 않으면 결과가 올바르지 않을 수 있습니다.

경우 comparernull, 비교를 수행를 사용 하는 IComparable<T> 형식을 위해 제공 되는 제네릭 인터페이스 구현을 T합니다. 요소 array 에 정의 된 정렬 순서에 따라 값이 증가 이미 정렬 되어야 합니다는 IComparable<T> 구현을 제공 합니다; 그렇지 않으면 결과 잘못 되었을 수 있습니다.

중복 되는 요소가 허용 됩니다. 경우는 Array 크거나 둘 이상의 요소가 포함 되어 value, 메서드, 각 항목 중 하나에 것 뿐 아니라 첫 번째 인덱스를 반환 합니다.

null항상 다른 참조 형식과;와 비교할 수 있습니다. 와 비교할 따라서 null 사용 하는 경우 예외를 생성 하지 않는 IComparable<T>합니다.

System_CAPS_note참고

테스트, 모든 요소에 대해 value 을 적절 한 전달 IComparable<T> 경우 valuenull합니다. 즉,는 IComparable<T> 구현 지정된 된 요소를 비교 하는 방법을 결정 null합니다.

이 메서드는는 O (로그 n) 작업, 여기서 nlength합니다.

유니버설 Windows 플랫폼
8 이후 사용 가능
.NET Framework
2.0 이후 사용 가능
이식 가능한 클래스 라이브러리
이식 가능한 .NET 플랫폼 에서 지원됨
Silverlight
2.0 이후 사용 가능
Windows Phone Silverlight
7.0 이후 사용 가능
Windows Phone
8.1 이후 사용 가능
맨 위로 이동
표시: