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

IDictionaryEnumerator (Interfaz)

 

Enumera los elementos de un diccionario no genérico.

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

[<ComVisibleAttribute(true)>]
type IDictionaryEnumerator = 
    interface
        interface IEnumerator
    end

NombreDescripción
System_CAPS_pubpropertyCurrent

Obtiene el elemento actual de la colección.(Heredado de IEnumerator.)

System_CAPS_pubpropertyEntry

Obtiene la clave y el valor de la entrada de diccionario actual.

System_CAPS_pubpropertyKey

Obtiene la clave de la entrada de diccionario actual.

System_CAPS_pubpropertyValue

Obtiene el valor de la entrada de diccionario actual.

NombreDescripción
System_CAPS_pubmethodMoveNext()

Desplaza el enumerador al siguiente elemento de la colección.(Heredado de IEnumerator.)

System_CAPS_pubmethodReset()

Establece el enumerador en su posición inicial (antes del primer elemento de la colección).(Heredado de IEnumerator.)

[Visual Basic, C#]

La instrucción foreach del lenguaje 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.El método Reset también devuelve el enumerador a esta posición.En esta posición, una llamada a la propiedad Current produce una excepción.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.

Current devuelve el mismo objeto hasta que se llama a MoveNext o a Reset. 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 el valor 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 ha devuelto false y se realiza una llamada a la propiedad Current, se produce una excepción.Para volver a establecer el valor de Current en el primer elemento de la colección, se puede llamar primero al método Reset y después al método MoveNext.

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 la siguiente llamada a MoveNext o a Reset produce una excepción InvalidOperationException.Si la colección se modifica entre MoveNext y Current, Current devuelve el elemento en el que está establecido, aunque el enumerador ya haya quedado invalidado.

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.Incluso cuando una colección está sincronizada, otros subprocesos todavía pueden modificarla, lo que hace que el enumerador produzca una excepción.Con el fin de garantizar la seguridad para la ejecución de subprocesos durante la enumeración, es posible bloquear la colección durante toda la enumeración o detectar las excepciones provocadas por los cambios que efectúen otros subprocesos.

Notas para los implementadores:

La propiedad Current que se hereda de IEnumerator devuelve un Object, que es una estructura DictionaryEntry a la que se ha aplicado la conversión boxing, similar al valor que devuelve la propiedad Entry.

En este ejemplo de código se muestra cómo definir un enumerador de diccionario que implementa la interfaz IDictionaryEnumerator.

No hay ningún ejemplo de código disponible o este idioma no es compatible.

Universal Windows Platform
Disponible desde 4.5
.NET Framework
Disponible desde 1.1
Portable Class Library
Compatible con: portable .NET platforms
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar: