이 문서는 기계로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오. 추가 정보
번역
원본
이 항목은 아직 평가되지 않았습니다.- 이 항목 평가

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

Array 의 각 요소 및 지정한 값에서 구현되는 IComparable<T> 제네릭 인터페이스를 사용하여 1차원으로 정렬된 Array의 요소 범위에서 값을 검색합니다.

네임스페이스:  System
어셈블리:  mscorlib(mscorlib.dll)
public static int BinarySearch<T>(
	T[] array,
	int index,
	int length,
	T value
)

Type 매개 변수

T

배열 요소의 형식입니다.

매개 변수

array
형식: T[]
검색할 1차원으로 정렬된 Array(인덱스는 0부터 시작)입니다.
index
형식: System.Int32
검색할 범위의 시작 인덱스입니다.
length
형식: System.Int32
검색할 범위의 길이입니다.
value
형식: T
검색할 개체입니다.

반환 값

형식: System.Int32
지정된 arrayvalue가 있는 경우 해당 value의 인덱스입니다. value가 없고 valuearray에 있는 하나 이상의 요소보다 작은 경우 value보다 큰 첫째 요소 인덱스의 비트 보수인 음수입니다. value가 없고 valuearray에 있는 요소보다 큰 경우 마지막 요소에 1을 더한 인덱스의 비트 보수인 음수입니다.
예외조건
ArgumentNullException

arraynull입니다.

ArgumentOutOfRangeException

indexarray의 하한보다 작은 경우

또는

length가 0보다 작은 경우

ArgumentException

indexlength에서 array에 대한 올바른 범위를 지정하지 않은 경우

또는

value의 형식이 array의 요소와 호환되지 않는 경우

InvalidOperationException

valueIComparable<T> 제네릭 인터페이스를 구현하지 않고 검색에서 IComparable<T> 제네릭 인터페이스를 구현하지 않는 요소를 발견하는 경우

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

Array 에 지정한 값이 없는 경우 해당 메서드는 음의 정수를 반환합니다. 음수 결과에 비트 보수 연산자(~)를 적용(Visual Basic의 경우 음수 결과와 -1에 대해 Xor 수행)하여 인덱스를 생성할 수 있습니다. 이 인덱스가 배열 크기보다 크거나 같으면 배열에 value보다 큰 요소가 없습니다. 그렇지 않으면 value보다 큰 첫 번째 요소의 인덱스입니다.

value 또는 모든 array 요소에서 비교에 사용되는 IComparable<T> 제네릭 인터페이스를 구현해야 합니다. array의 요소는 IComparable<T> 구현에 정의된 정렬 순서에 따라 값이 증가하도록 정렬되어 있어야 합니다. 그렇지 않으면 잘못된 결과가 반환될 수 있습니다.

참고참고

valueIComparable<T> 제네릭 인터페이스를 구현하지 않으면 array의 요소는 검색이 시작되기 전에 IComparable<T>에 대해 테스트되지 않습니다. 검색에서 IComparable<T>을 구현하지 않는 요소를 발견하면 예외가 throw됩니다.

요소는 중복할 수 있습니다. Array value와 동일한 요소가 두 개 이상 포함된 경우, 해당 메서드는 발견되는 대상 중 하나에 대한 인덱스만 무작위로 반환합니다.

null 은 항상 다른 모든 참조 형식과 비교될 수 있으므로 null와 비교하더라도 예외가 생성되지는 않습니다. 정렬할 때 null은 다른 개체보다 작은 것으로 간주됩니다.

참고참고

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

이 메서드는 O(log n) 연산이며, 여기서 nlength입니다.

.NET Framework

4.5, 4, 3.5, 3.0, 2.0에서 지원

.NET Framework Client Profile

4, 3.5 SP1에서 지원

이식 가능한 클래스 라이브러리

이식 가능한 클래스 라이브러리에서 지원

Windows 스토어 앱용 .NET

Windows 8에서 지원

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008(서버 코어 역할은 지원되지 않음), Windows Server 2008 R2(서버 코어 역할은 SP1 이상에서 지원, Itanium은 지원되지 않음)

.NET Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.
이 정보가 도움이 되었습니까?
(1500자 남음)

커뮤니티 추가 항목

추가
Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
© 2013 Microsoft. All rights reserved.