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.IndexOf (Array, Object, Int32)

 

Publicado: noviembre de 2016

Busca el objeto especificado en un intervalo de elementos de la matriz unidimensional y devuelve el índice de su primera aparición. El intervalo se extiende desde un índice especificado hasta el final de la matriz.

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

public static int IndexOf(
	Array array,
	object value,
	int startIndex
)

Parámetros

array
Type: System.Array

Matriz unidimensional en la que se va a buscar.

value
Type: System.Object

Objeto que se va a buscar en array.

startIndex
Type: System.Int32

Índice inicial de la búsqueda. 0 (cero) es válido en una matriz vacía.

Valor devuelto

Type: System.Int32

Índice de la primera aparición de value, si se encuentra una, en el intervalo de elementos de array que se extiende desde startIndex hasta el último elemento; en caso contrario, límite inferior de la matriz menos 1.

Exception Condition
ArgumentNullException

El valor de array es null.

ArgumentOutOfRangeException

startIndex está fuera del intervalo de índices válidos para array.

RankException

array es multidimensional.

Este método busca una matriz unidimensional del elemento en el índice startIndexhasta el último elemento. Para determinar si value existe en array, el método realiza una comparación de igualdad mediante una llamada a la Equals método de todos los elementos hasta que encuentra una coincidencia. Esto significa que si el elemento pasa por alto el Object.Equals(Object) se llama al método, que la invalidación.

Porque la mayoría de las matrices tiene un límite inferior de cero, este método normalmente devuelve – 1 si value no se encuentra. En el caso excepcional de que el límite inferior de la matriz es igual a Int32.MinValue(0 x 80000000) y value no se encuentra, este método devuelve Int32.MaxValue (0x7FFFFFFF).

Si startIndex es igual a Array.Length, el método devuelve -1. Si startIndex es mayor que Array.Length, el método produce una ArgumentOutOfRangeException.

Este método es una O (n) operación, donde n es el número de elementos de startIndex al final de array.

En el ejemplo se llama a las siguientes tres sobrecargas de la IndexOf método para encontrar el índice de una cadena en una matriz de cadenas:

  • IndexOf(Array, Object), para determinar la primera aparición de la cadena "the" en una matriz de cadenas.

  • IndexOf(Array, Object, Int32), para determinar la primera aparición de la cadena "the" en la cuarta a los últimos elementos de una matriz de cadenas.

  • IndexOf(Array, Object, Int32, Int32), para determinar la primera aparición de la cadena "the" en una cadena de la matriz desde el elemento que sigue a la última coincidencia correcta al final de la matriz.

using System;

public class Example
{
    public static void Main()
    {
       // Create a string array with 3 elements having the same value.
       String[] strings = { "the", "quick", "brown", "fox", "jumps",
                            "over", "the", "lazy", "dog", "in", "the",
                            "barn" };

       // Display the elements of the array.
       Console.WriteLine("The array contains the following values:");
       for (int i = strings.GetLowerBound(0); i <= strings.GetUpperBound(0); i++)
          Console.WriteLine("   [{0,2}]: {1}", i, strings[i]);

       // Search for the first occurrence of the duplicated value.
       String searchString = "the";
       int index = Array.IndexOf(strings, searchString);
       Console.WriteLine("The first occurrence of \"{0}\" is at index {1}.",
                         searchString, index);

       // Search for the first occurrence of the duplicated value in the last section of the array.
       index = Array.IndexOf(strings, searchString, 4);
       Console.WriteLine("The first occurrence of \"{0}\" between index 4 and the end is at index {1}.",
                         searchString, index);

       // Search for the first occurrence of the duplicated value in a section of the array.
       int position = index + 1;
       index = Array.IndexOf(strings, searchString, position, strings.GetUpperBound(0) - position + 1);
       Console.WriteLine("The first occurrence of \"{0}\" between index {1} and index {2} is at index {3}.",
                         searchString, position, strings.GetUpperBound(0), index);
    }
 }
// The example displays the following output:
//    The array contains the following values:
//       [ 0]: the
//       [ 1]: quick
//       [ 2]: brown
//       [ 3]: fox
//       [ 4]: jumps
//       [ 5]: over
//       [ 6]: the
//       [ 7]: lazy
//       [ 8]: dog
//       [ 9]: in
//       [10]: the
//       [11]: barn
//    The first occurrence of "the" is at index 0.
//    The first occurrence of "the" between index 4 and the end is at index 6.
//    The first occurrence of "the" between index 7 and index 11 is at index 10.

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: