Exportar (0) Imprimir
Expandir todo
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original

HashSet<T>.Enumerator (Estructura)

Enumera los elementos de un objeto HashSet<T>.

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

[SerializableAttribute]
[HostProtectionAttribute(SecurityAction.LinkDemand, MayLeakOnAbort = true)]
public struct Enumerator : IEnumerator<T>, 
	IDisposable, IEnumerator

El tipo genérico HashSet<T>.Enumerator expone los siguientes miembros.

  NombreDescripción
Propiedad públicaCurrentObtiene el elemento en la posición actual del enumerador.
Arriba

  NombreDescripción
Método públicoDisposeLibera todos los recursos utilizados por un objeto HashSet<T>.Enumerator.
Método públicoEqualsIndica si esta instancia y un objeto especificado son iguales. (Se hereda de ValueType).
Método protegidoFinalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método públicoGetHashCodeDevuelve el código hash de esta instancia. (Se hereda de ValueType).
Método públicoGetType Obtiene el Typede la instancia actual. (Se hereda de Object).
Método protegidoMemberwiseClone Crea una copia superficial del Object actual. (Se hereda de Object).
Método públicoMoveNextDesplaza el enumerador al siguiente elemento de la colección HashSet<T>.
Método públicoToStringDevuelve el nombre de tipo completo de esta instancia. (Se hereda de ValueType).
Arriba

  NombreDescripción
Implementación explícita de interfacesPropiedad privadaIEnumerator.CurrentObtiene el elemento en la posición actual del enumerador.
Implementación explícita de interfacesMétodo privadoIEnumerator.ResetEstablece el enumerador en su posición inicial (antes del primer elemento de la colección).
Arriba

La instrucción foreach del lenguaje de 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, 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.

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 esa posición, las llamadas posteriores a MoveNext también devuelven 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 un nuevo objeto 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.

NotaNota

El atributo HostProtectionAttribute aplicado a este tipo o miembro tiene el siguiente valor de la propiedad Resources: MayLeakOnAbort. El atributo HostProtectionAttribute no afecta a las aplicaciones de escritorio (que normalmente se inician haciendo doble clic en un icono, escribiendo un comando o introduciendo una dirección URL en el explorador). Para obtener más información, vea la clase HostProtectionAttribute o Programación en SQL Server y atributos de protección de host.

.NET Framework

Compatible con: 4, 3.5

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, 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.

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft