Esta documentación está archivada y no tiene mantenimiento.

Interfaz genérica IEnumerator

Nota: esta interfaz es nueva en la versión 2.0 de .NET Framework.

Admite una iteración simple en una colección genérica.

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

public interface IEnumerator<T> : IDisposable, IEnumerator
J# admite el uso de métodos y tipos genéricos, pero no admite la declaración de métodos y tipos nuevos.
JScript no admite el uso de métodos y tipos genéricos.

Parámetros de tipo

T

Tipo de los objetos que se van a enumerar.

IEnumerator es la interfaz base de todos los enumeradores genéricos.

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

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

Inicialmente, el enumerador se coloca delante del primer elemento de la colección. En esta posición, el valor de la propiedad Current está sin definir. Por lo tanto, se debe llamar a MoveNext para adelantar el enumerador hasta el primer elemento de la colección antes de leer el valor de Current.

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

Si MoveNext pasa el final de la colección, el enumerador se coloca detrás del último elemento de la colección y MoveNext devuelve false. Cuando el enumerador está en esta posición, las llamadas posteriores al método MoveNext también devuelven el valor false. Si la última llamada al método MoveNext devuelve false, el valor de la propiedad Current está sin definir. No puede volver a establecer la propiedad Current en el primer elemento de la colección, sino que debe crear una nueva instancia del enumerador.

Mientras no se modifique la colección, el enumerador continúa siendo válido. Si se realizan cambios en la colección, como agregar, modificar o eliminar elementos, el enumerador se invalida definitivamente y su comportamiento queda sin definir.

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

Las implementaciones predeterminadas de las colecciones del espacio de nombres System.Collections.Generic no están sincronizadas.

Notas para los implementadores Para implementar esta interfaz es necesario implementar la interfaz IEnumerator no genérica. Los métodos MoveNext y Reset no dependen de T y sólo aparecen en la interfaz no genérica. La propiedad Current aparece en ambas interfaces y tiene tipos de devolución diferentes. Implemente la propiedad IEnumerator.Current no genérica como una implementación de interfaz explícita. Así se permite que cualquier consumidor de la interfaz no genérica utilice la interfaz genérica.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0

.NET Compact Framework

Compatible con: 2.0
Mostrar: