Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original
Este tema aún no ha recibido ninguna valoración - Valorar este tema

Dictionary<TKey, TValue>.GetEnumerator (Método)

Devuelve un enumerador que recorre en iteración la colección Dictionary<TKey, TValue>.

Espacio de nombres:  System.Collections.Generic
Ensamblado:  mscorlib (en mscorlib.dll)
public Dictionary<T>.Enumerator GetEnumerator()

Valor devuelto

Tipo: System.Collections.Generic.Dictionary<TKey, TValue>.Enumerator
Estructura Enumerator para la colección Dictionary<TKey, TValue>.

Para la enumeración, cada elemento es una estructura KeyValuePair<TKey, TValue> que representa un valor y su clave.

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 antes del primer elemento de la colección. En esta posición, la propiedad Current queda sin definir. Por lo tanto, se debe llamar al método MoveNext para desplazar el enumerador hasta el primer elemento de la colección antes de leer el valor de Current.

NotaNota

Para obtener un mejor rendimiento, el enumerador que devuelve esta propiedad no produce una excepción si se coloca antes del primer elemento o después del último y se obtiene acceso a la propiedad Current; el valor de la propiedad Current queda sin definir.

La propiedad Current devuelve el mismo elemento 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 false. Si la última llamada al método MoveNext devuelve false, el valor de la propiedad Current queda sin definir. No se puede volver a establecer la propiedad Current en el primer elemento de la colección, sino que se 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 las colecciones del espacio de nombres System.Collections.Generic no están sincronizadas.

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

.NET Framework

Compatible con: 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

.NET para aplicaciones de la Tienda Windows

Compatible con: Windows 8

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.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.
¿Te ha resultado útil?
(Caracteres restantes: 1500)

Adiciones de comunidad

AGREGAR
© 2013 Microsoft. Reservados todos los derechos.