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

Collection<T>.GetEnumerator (Método)

Devuelve un enumerador que recorre en iteración la colección Collection<T>.

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

public IEnumerator<T> GetEnumerator()

Valor devuelto

Tipo: System.Collections.Generic.IEnumerator<T>
Interfaz IEnumerator<T> para la colección Collection<T>.

Implementaciones

IEnumerable<T>.GetEnumerator()

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 se pueden utilizar 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, debe llamar a MoveNext para adelantar el enumerador al primer elemento de la colección antes de leer el valor de Current.

El método Current devuelve el mismo objeto hasta que se llama al método 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 seguirá 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, por naturaleza, no es seguro para la ejecución de subprocesos. Para garantizar la seguridad en la ejecución de subprocesos durante la enumeración, puede bloquear la colección durante la enumeración completa. 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 colecciones en System.Collections.Generic no están sincronizadas.

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

.NET Framework

Compatible con: 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Compatible con:

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Mostrar: