Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

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

 

Busca un valor por toda una matriz unidimensional y ordenada, usando la interfaz IComparer especificada.

Espacio de nombres:   System
Ensamblado:  mscorlib (en mscorlib.dll)

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

Parámetros

array
Type: System.Array

Matriz Array unidimensional y ordenada en la que se va a buscar.

value
Type: System.Object

Objeto que se va a buscar.

comparer
Type: System.Collections.IComparer

Implementación de IComparer que se va a usar al comparar elementos.

O bien

null para usar la implementación de IComparable de cada elemento.

Valor devuelto

Type: System.Int32

Índice del elemento value especificado en el objeto array especificado, si se encuentra value; en caso contrario, un número negativo. Si no se encuentra value y value es menor que uno o varios elementos de array, el número negativo devuelto es el complemento bit a bit del índice del primer elemento que sea mayor que value. Si no se encuentra value y value es mayor que cualquiera de los elementos de array, el número negativo devuelto es el complemento bit a bit del índice del último elemento más 1. Si se llama a este método con un objeto array sin clasificar, el valor devuelto puede ser incorrecto y podría devolverse un número negativo, aunque value esté presente en array.

Exception Condition
ArgumentNullException

El valor de array es null.

RankException

array es multidimensional.

ArgumentException

comparer es null y value es de un tipo que no es compatible con los elementos de array.

InvalidOperationException

comparer es null, value no implementa la interfaz IComparable y la búsqueda encuentra un elemento que no implementa la interfaz IComparable.

Este método no es compatible con Buscar en matrices que contienen índices negativos. arraydeben estar ordenados antes de llamar a este método.

Si el Array no contiene el valor especificado, el método devuelve un entero negativo. Puede aplicar el operador de complemento bit a bit (~ en C#, Not en Visual Basic) al resultado negativo para generar un índice. Si este índice es uno mayor que el límite superior de la matriz, hay ningún elemento mayor que value en la matriz. En caso contrario, es el índice del primer elemento que es mayor que value.

El comparador personaliza cómo se comparan los elementos. Por ejemplo, puede usar un System.Collections.CaseInsensitiveComparer como comparador para realizar búsquedas de cadenas entre mayúsculas y minúsculas.

Si comparer no null, los elementos de array se comparan con el valor especificado utilizando el parámetro IComparer implementación. Los elementos de array ya deben estar ordenados al aumentar el valor según el criterio de ordenación definido por comparer; en caso contrario, el resultado puede ser incorrecto.

Sicomparer es null, la comparación se realiza mediante el IComparable implementación proporcionada por el propio elemento o por el valor especificado. Los elementos de array ya deben estar ordenados al aumentar el valor según el criterio de ordenación definido por el IComparable implementación; en caso contrario, el resultado puede ser incorrecto.

System_CAPS_noteNota

Si comparer es null y value no implementa la IComparable de la interfaz, los elementos de array no se comprueba si hay IComparable antes de que comience la búsqueda. Se produce una excepción si la búsqueda encuentra un elemento que no implementa IComparable.

Se permiten elementos duplicados. Si el Array contiene más de un elemento igual a value, el método devuelve el índice de solo una de las apariciones y no necesariamente la primera de ellas.

nullsiempre puede compararse con cualquier otro tipo de referencia; por lo tanto, las comparaciones con null no generan una excepción.

System_CAPS_noteNota

Para cada elemento probado, value se pasa a la correspondiente IComparable implementación, incluso si value es null. Es decir, el IComparable implementación determina cómo se compara con un elemento determinado null.

Este método es una O (registro n) operación, donde n es el Length de array.

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Windows Phone Silverlight
Disponible desde 8.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar: