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

Método DictionaryBase.IEnumerable.GetEnumerator ()

 

Publicado: octubre de 2016

Devuelve un objeto IEnumerator que itera a través del objeto DictionaryBase.

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

IEnumerator IEnumerable.GetEnumerator()

Valor devuelto

Type: System.Collections.IEnumerator

Estructura IEnumerator para la colección DictionaryBase.

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

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

En principio, 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, llamar a Current produce una excepción. Por lo tanto, 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 o a Reset. MoveNext establece Current en el siguiente elemento.

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. Mientras el enumerador permanezca en esta posición, las llamadas subsiguientes a MoveNext también devolver false. Si la última llamada a MoveNext devuelve false, al llamar a Current produce una excepción. Para volver a establecer el valor de Current en el primer elemento de la colección, se puede llamar primero a Reset y después a MoveNext.

Un enumerador es válido mientras la colección no cambie. Si se realizan cambios en la colección, como agregar, modificar, o eliminar elementos, el enumerador queda invalida invalidado y la siguiente llamada a MoveNext o Reset produce una InvalidOperationException. Si la colección se modifica entre MoveNext y Current, Current devuelve el elemento que está establecido, aunque el enumerador ya se haya invalidado.

El enumerador no tiene acceso exclusivo a la colección y, por tanto, la enumeración en una colección no es intrínsicamente un procedimiento seguro para 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, se puede bloquear la colección durante toda la enumeración o detectar las excepciones resultantes de los cambios realizados por otros subprocesos.

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

Plataforma universal de Windows
Disponible desde 10
.NET Framework
Disponible desde 1.1
Volver al principio
Mostrar: