Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Método Array.BinarySearch (Array, Object, IComparer)

 

Pesquisa um valor usando a interface IComparer especificada em uma matriz classificada unidimensional inteira.

Namespace:   System
Assembly:  mscorlib (em mscorlib.dll)

public static int BinarySearch(
	Array array,
	object value,
	IComparer comparer
)

Parâmetros

array
Type: System.Array

O Array unidimensional classificado a ser procurado.

value
Type: System.Object

O objeto a ser procurado.

comparer
Type: System.Collections.IComparer

A implementação de IComparer a ser usada durante a comparação de elementos.

-ou-

null para usar a implementação de IComparable de cada elemento.

Valor Retornado

Type: System.Int32

O índice do value especificado no array especificado, caso value seja encontrado; caso contrário, um número negativo. Caso value não seja encontrado e value seja menor que um ou mais elementos no array, o número negativo retornado será o complemento bit a bit do índice do primeiro elemento maior que value. Caso value não seja encontrado e value seja maior que todos os elementos no array, o número negativo retornado será o complemento bit a bit (do índice do último elemento mais 1). Se esse método for chamado com array não classificado, o valor retornado poderá estar incorreto e um número negativo pode ser retornado, mesmo se value estiver presente no array.

Exception Condition
ArgumentNullException

array é null.

RankException

array é multidimensional.

ArgumentException

comparer é null, e value é de um tipo que não é compatível com os elementos de array.

InvalidOperationException

comparer é null, value não implementa a interface IComparable e a pesquisa encontra um elemento que não implementa a interface IComparable.

Este método não oferece suporte a matrizes de pesquisa que contêm índices negativos. arraydeve ser classificada antes de chamar esse método.

Caso o Array não contenha o valor especificado, o método retorna um inteiro negativo. Você pode aplicar o operador de complemento bit a bit (~ em c#, Not no Visual Basic) para o resultado negativo para produzir um índice. Se esse índice é um maior que o limite superior da matriz, não existem elementos maior do que value na matriz. Do contrário, é o índice do primeiro elemento que é maior que value.

A comparação personaliza como os elementos são comparados. Por exemplo, é possível usar um System.Collections.CaseInsensitiveComparer como a comparação para realizar pesquisas de cadeia de caracteres que não diferenciam maiúsculas de minúsculas.

Se comparer não é null, os elementos de array são comparados com o valor especificado usando especificado IComparer implementação. Os elementos de array já devem ser classificados em valor crescente de acordo com a ordem de classificação definida por comparer; do contrário, o resultado pode estar incorreto.

Secomparer é null, a comparação é feita usando o IComparable implementação fornecida pelo próprio elemento ou valor especificado. Os elementos de array já devem ser classificados em valor crescente de acordo com a ordem de classificação definida pela implementação de IComparable; do contrário, o resultado pode estar incorreto.

System_CAPS_noteObservação

Se comparer é null e value não implementa o IComparable de interface, os elementos de array não são testadas para IComparable antes de começa a pesquisa. Uma exceção será lançada se a pesquisa encontrar um elemento que não implementa IComparable.

Os elementos duplicados são permitidos. Caso o Array contenha mais de um elemento igual a value, o método retorna o índice de apenas uma das ocorrências, e não necessariamente da primeira.

null sempre pode ser comparado com qualquer outro tipo de referência; por isso, comparações com null não geram uma exceção.

System_CAPS_noteObservação

Para cada elemento testado, value é passado para a implementação apropriada de IComparable, mesmo se value for null. Ou seja, a implementação de IComparable determina como um determinado elemento se compara com null.

Este método é uma operação O(log n), em que n é o Length de array.

Plataforma Universal do Windows
Disponível desde 8
.NET Framework
Disponível desde 1.1
Biblioteca de Classes Portátil
Com suporte no: plataformas portáteis do .NET
Windows Phone Silverlight
Disponível desde 8.0
Windows Phone
Disponível desde 8.1
Retornar ao início
Mostrar: