ArrayList.GetEnumerator Método

Definición

Devuelve un enumerador que recorre en iteración .ArrayList

Sobrecargas

Nombre Description
GetEnumerator()

Devuelve un enumerador para todo ArrayList.

GetEnumerator(Int32, Int32)

Devuelve un enumerador para un intervalo de elementos de ArrayList.

GetEnumerator()

Devuelve un enumerador para todo ArrayList.

public:
 virtual System::Collections::IEnumerator ^ GetEnumerator();
public virtual System.Collections.IEnumerator GetEnumerator();
abstract member GetEnumerator : unit -> System.Collections.IEnumerator
override this.GetEnumerator : unit -> System.Collections.IEnumerator
Public Overridable Function GetEnumerator () As IEnumerator

Devoluciones

para IEnumerator todo ArrayList.

Implementaciones

Ejemplos

En el ejemplo siguiente se obtiene el enumerador de un ArrayListobjeto y el enumerador para un intervalo de elementos de ArrayList.

using System;
using System.Collections;

class Program
{
    static void Main(string[] args)
    {
        ArrayList colors = new ArrayList();
        colors.Add("red");
        colors.Add("blue");
        colors.Add("green");
        colors.Add("yellow");
        colors.Add("beige");
        colors.Add("brown");
        colors.Add("magenta");
        colors.Add("purple");

        IEnumerator e = colors.GetEnumerator();
        while (e.MoveNext())
        {
            Object obj = e.Current;
            Console.WriteLine(obj);
        }

        Console.WriteLine();

        IEnumerator e2 = colors.GetEnumerator(2, 4);
        while (e2.MoveNext())
        {
            Object obj = e2.Current;
            Console.WriteLine(obj);
        }
    }
}

/* This code example produces
   the following ouput:
    red
    blue
    green
    yellow
    beige
    brown
    magenta
    purple

    green
    yellow
    beige
    brown
 */
Imports System.Collections

Class Program
    Private Shared Sub Main(ByVal args As String())
        Dim colors As New ArrayList()
        colors.Add("red")
        colors.Add("blue")
        colors.Add("green")
        colors.Add("yellow")
        colors.Add("beige")
        colors.Add("brown")
        colors.Add("magenta")
        colors.Add("purple")
        
        Dim e As IEnumerator = colors.GetEnumerator()
        While e.MoveNext()
            Dim obj As [Object] = e.Current
            Console.WriteLine(obj)
        End While
        
        Console.WriteLine()
        
        Dim e2 As IEnumerator = colors.GetEnumerator(2, 4)
        While e2.MoveNext()
            Dim obj As [Object] = e2.Current
            Console.WriteLine(obj)
        End While
    End Sub
End Class

' This code example produces
' the following ouput:
' red
' blue
' green
' yellow
' beige
' brown
' magenta
' purple
'
' green
' yellow
' beige
' brown
'

Comentarios

La instrucción foreach del lenguaje C# (for each en Visual Basic) oculta la complejidad de los enumeradores. Por lo tanto, se recomienda usar foreach , en lugar de manipular directamente el enumerador.

Los enumeradores se pueden usar para leer los datos de la colección, pero no se pueden usar para modificar la colección subyacente.

Inicialmente, el enumerador se coloca antes del primer elemento de la colección. Reset también devuelve el enumerador a esta posición. En esta posición, Current no está definido. Por lo tanto, debe llamar MoveNext a para avanzar el enumerador al primer elemento de la colección antes de leer el valor de Current.

Current devuelve el mismo objeto hasta MoveNext que se llama a o Reset . MoveNext establece Current en el elemento siguiente.

Si MoveNext pasa el final de la colección, el enumerador se coloca después del último elemento de la colección y MoveNext devuelve false. Cuando el enumerador está en esta posición, las llamadas posteriores a MoveNext también devuelven false. Si la última llamada a MoveNext se falsedevuelve , Current no está definida. Para volver a establecer Current en el primer elemento de la colección, puede llamar a Reset seguido de MoveNext.

Un enumerador sigue siendo válido siempre que la colección permanezca sin cambios. Si se realizan cambios en la colección, como agregar, modificar o eliminar elementos, el enumerador se invalida irrecuperablemente y su comportamiento no está definido.

El enumerador no tiene acceso exclusivo a la colección; por lo tanto, la enumeración a través de una colección no es intrínsecamente un procedimiento seguro para subprocesos. Para garantizar la seguridad de los subprocesos durante la enumeración, puede bloquear la colección durante toda la enumeración. Para permitir que varios subprocesos puedan acceder a la colección para leer y escribir, debe implementar su propia sincronización.

Este método es una O(1) operación.

Consulte también

Se aplica a

GetEnumerator(Int32, Int32)

Devuelve un enumerador para un intervalo de elementos de ArrayList.

public:
 virtual System::Collections::IEnumerator ^ GetEnumerator(int index, int count);
public virtual System.Collections.IEnumerator GetEnumerator(int index, int count);
abstract member GetEnumerator : int * int -> System.Collections.IEnumerator
override this.GetEnumerator : int * int -> System.Collections.IEnumerator
Public Overridable Function GetEnumerator (index As Integer, count As Integer) As IEnumerator

Parámetros

index
Int32

Índice inicial de base cero de la sección a la ArrayList que debe hacer referencia el enumerador.

count
Int32

Número de elementos de la ArrayList sección a los que debe hacer referencia el enumerador.

Devoluciones

para IEnumerator el intervalo especificado de elementos de .ArrayList

Excepciones

index es menor que cero.

O bien

count es menor que cero.

indexy count no especifican un intervalo válido en .ArrayList

Ejemplos

En el ejemplo siguiente se obtiene el enumerador de un ArrayListobjeto y el enumerador para un intervalo de elementos de ArrayList.

using System;
using System.Collections;

class Program
{
    static void Main(string[] args)
    {
        ArrayList colors = new ArrayList();
        colors.Add("red");
        colors.Add("blue");
        colors.Add("green");
        colors.Add("yellow");
        colors.Add("beige");
        colors.Add("brown");
        colors.Add("magenta");
        colors.Add("purple");

        IEnumerator e = colors.GetEnumerator();
        while (e.MoveNext())
        {
            Object obj = e.Current;
            Console.WriteLine(obj);
        }

        Console.WriteLine();

        IEnumerator e2 = colors.GetEnumerator(2, 4);
        while (e2.MoveNext())
        {
            Object obj = e2.Current;
            Console.WriteLine(obj);
        }
    }
}

/* This code example produces
   the following ouput:
    red
    blue
    green
    yellow
    beige
    brown
    magenta
    purple

    green
    yellow
    beige
    brown
 */
Imports System.Collections

Class Program
    Private Shared Sub Main(ByVal args As String())
        Dim colors As New ArrayList()
        colors.Add("red")
        colors.Add("blue")
        colors.Add("green")
        colors.Add("yellow")
        colors.Add("beige")
        colors.Add("brown")
        colors.Add("magenta")
        colors.Add("purple")
        
        Dim e As IEnumerator = colors.GetEnumerator()
        While e.MoveNext()
            Dim obj As [Object] = e.Current
            Console.WriteLine(obj)
        End While
        
        Console.WriteLine()
        
        Dim e2 As IEnumerator = colors.GetEnumerator(2, 4)
        While e2.MoveNext()
            Dim obj As [Object] = e2.Current
            Console.WriteLine(obj)
        End While
    End Sub
End Class

' This code example produces
' the following ouput:
' red
' blue
' green
' yellow
' beige
' brown
' magenta
' purple
'
' green
' yellow
' beige
' brown
'

Comentarios

La foreach instrucción del lenguaje C# oculta la complejidad de los enumeradores. Por lo tanto, se recomienda usar foreach , en lugar de manipular directamente el enumerador.

Los enumeradores se pueden usar para leer los datos de la colección, pero no se pueden usar para modificar la colección subyacente.

Inicialmente, el enumerador se coloca antes del primer elemento de la colección. Reset también devuelve el enumerador a esta posición. En esta posición, Current no está definido. Por lo tanto, debe llamar MoveNext a para avanzar el enumerador al primer elemento de la colección antes de leer el valor de Current.

Current devuelve el mismo objeto hasta MoveNext que se llama a o Reset . MoveNext establece Current en el elemento siguiente.

Si MoveNext pasa el final de la colección, el enumerador se coloca después del último elemento de la colección y MoveNext devuelve false. Cuando el enumerador está en esta posición, las llamadas posteriores a MoveNext también devuelven false. Si la última llamada a MoveNext se falsedevuelve , Current no está definida. Para volver a establecer Current en el primer elemento de la colección, puede llamar a Reset seguido de MoveNext.

Un enumerador sigue siendo válido siempre que la colección permanezca sin cambios. Si se realizan cambios en la colección, como agregar, modificar o eliminar elementos, el enumerador se invalida irrecuperablemente y su comportamiento no está definido.

El enumerador no tiene acceso exclusivo a la colección; por lo tanto, la enumeración a través de una colección no es intrínsecamente un procedimiento seguro para subprocesos. Para garantizar la seguridad de los subprocesos durante la enumeración, puede bloquear la colección durante toda la enumeración. Para permitir que varios subprocesos puedan acceder a la colección para leer y escribir, debe implementar su propia sincronización.

Este método es una O(1) operación.

Consulte también

Se aplica a