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, Int32, Int32, Object, IComparer)

 

Busca un valor en un intervalo de elementos de 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,
	int index,
	int length,
	object value,
	IComparer comparer
)

Parámetros

array
Type: System.Array

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

index
Type: System.Int32

Índice inicial del intervalo en el que se va a buscar.

length
Type: System.Int32

Longitud del intervalo en el 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.

ArgumentOutOfRangeException

index es menor que el límite inferior de array.

-o-

length es menor que cero.

ArgumentException

index y length no especifican un intervalo válido en array.

-o-

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.

Si comparer 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 al utilizar IComparable.

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 length.

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
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar: