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

Propiedad ArrayList.Item (Int32)

 

Publicado: octubre de 2016

Obtiene o establece el elemento en el índice especificado.

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

public virtual object this[
	int index
] { get; set; }

Parámetros

index
Type: System.Int32

Índice de base cero del elemento que se va a obtener o establecer.

Valor de propiedad

Type: System.Object

Elemento en el índice especificado.

Exception Condition
ArgumentOutOfRangeException

index es menor que cero.

O bien

index es igual o mayor que Count.

El Item devuelve un Object, por lo que tendrá que convertir el valor devuelto al tipo original para manipularlo. Es importante tener en cuenta que ArrayList no es una colección fuertemente tipada. Para una alternativa fuertemente tipado, consulte List<T>.

ArrayList acepta null como valor válido y admite elementos duplicados.

Esta propiedad permite obtener acceso a un elemento específico de la colección utilizando la sintaxis siguiente: myCollection[index].

El lenguaje C# utiliza la palabra clave para definir los indizadores en lugar de implementar la Item propiedad. Visual Basic implementa Item como propiedad predeterminada, lo que proporciona la misma funcionalidad de indización.

Recuperación del valor de esta propiedad es una operación o (1); establecer la propiedad también es una operación o (1).

En el ejemplo de código siguiente se crea un ArrayList y se agregan varios elementos. El ejemplo muestra cómo tener acceso a elementos con el Item propiedad (el indizador en C#) y cómo modificar un elemento asignando un nuevo valor para el Item propiedad de un índice especificado. El ejemplo también muestra que el Item propiedad no puede utilizarse para tener acceso o agregar elementos fuera del tamaño actual de la lista.

using System;
using System.Collections;

public class Example
{
    public static void Main()
    {
        // Create an empty ArrayList, and add some elements.
        ArrayList stringList = new ArrayList();

        stringList.Add("a");
        stringList.Add("abc");
        stringList.Add("abcdef");
        stringList.Add("abcdefg");

        // The Item property is an indexer, so the property name is
        // not required.
        Console.WriteLine("Element {0} is \"{1}\"", 2, stringList[2]);

        // Assigning a value to the property changes the value of
        // the indexed element.
        stringList[2] = "abcd";
        Console.WriteLine("Element {0} is \"{1}\"", 2, stringList[2]);

        // Accessing an element outside the current element count
        // causes an exception. 
        Console.WriteLine("Number of elements in the list: {0}", 
            stringList.Count);
        try
        {
            Console.WriteLine("Element {0} is \"{1}\"", 
                stringList.Count, stringList[stringList.Count]);
        }
        catch(ArgumentOutOfRangeException aoore)
        {
            Console.WriteLine("stringList({0}) is out of range.", 
                stringList.Count);
        }

        // You cannot use the Item property to add new elements.
        try
        {
            stringList[stringList.Count] = "42";
        }
        catch(ArgumentOutOfRangeException aoore)
        {
            Console.WriteLine("stringList({0}) is out of range.", 
                stringList.Count);
        }

        Console.WriteLine();
        for (int i = 0; i < stringList.Count; i++)
        {
            Console.WriteLine("Element {0} is \"{1}\"", i, 
                stringList[i]);
        }

        Console.WriteLine();
        foreach (object o in stringList)
        {
            Console.WriteLine(o);
        }
    }
}
/*
 This code example produces the following output:

Element 2 is "abcdef"
Element 2 is "abcd"
Number of elements in the list: 4
stringList(4) is out of range.
stringList(4) is out of range.

Element 0 is "a"
Element 1 is "abc"
Element 2 is "abcd"
Element 3 is "abcdefg"

a
abc
abcd
abcdefg
 */

En el ejemplo siguiente se usa el Item propiedad explícitamente para asignar valores a los elementos de la lista. El ejemplo define una clase que hereda un ArrayList y agrega un método para codificar los elementos de lista.

using System;
using System.Collections;

public class ScrambleList : ArrayList
{
    public static void Main()
    {
        // Create an empty ArrayList, and add some elements.
        ScrambleList integerList = new ScrambleList();

        for (int i = 0; i < 10; i++)
        {
            integerList.Add(i);
        }

        Console.WriteLine("Ordered:\n");
        foreach (int value in integerList)
        {
            Console.Write("{0}, ", value);
        }
        Console.WriteLine("<end>\n\nScrambled:\n");

        // Scramble the order of the items in the list.
        integerList.Scramble();

        foreach (int value in integerList)
        {
            Console.Write("{0}, ", value);
        }
        Console.WriteLine("<end>\n");
    }

    public void Scramble()
    {
        int limit = this.Count;
        int temp;
        int swapindex;
        Random rnd = new Random();
        for (int i = 0; i < limit; i++)
        {
            // The Item property of ArrayList is the default indexer. Thus,
            // this[i] is used instead of Item[i].
            temp = (int)this[i];
            swapindex = rnd.Next(0, limit - 1);
            this[i] = this[swapindex];
            this[swapindex] = temp;
        }
    }
}

// The program produces output similar to the following:
//
// Ordered:
//
// 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, <end>
//
// Scrambled:
//
// 5, 2, 8, 9, 6, 1, 7, 0, 4, 3, <end>

Plataforma universal de Windows
Disponible desde 10
.NET Framework
Disponible desde 1.1
Volver al principio
Mostrar: