DoubleCollection.GetEnumerator DoubleCollection.GetEnumerator DoubleCollection.GetEnumerator DoubleCollection.GetEnumerator Method

Definición

Devuelve un enumerador que puede recorrer en iteración la colección.Returns an enumerator that can iterate through the collection.

public:
 System::Windows::Media::DoubleCollection::Enumerator GetEnumerator();
public System.Windows.Media.DoubleCollection.Enumerator GetEnumerator ();
member this.GetEnumerator : unit -> System.Windows.Media.DoubleCollection.Enumerator
Public Function GetEnumerator () As DoubleCollection.Enumerator

Devoluciones

Comentarios

Los enumeradores solo permiten leer los datos de la colección.Enumerators only allow reading the data in the collection. Los enumeradores no se pueden usar para modificar la colección subyacente.Enumerators cannot be used to modify the underlying collection.

Inicialmente, el enumerador se coloca delante del primer elemento de la colección.Initially, the enumerator is positioned before the first item in the collection. En esta posición, al Current llamar a se produce una excepción.At this position, calling Current throws an exception. Por lo tanto, debe MoveNext llamar a para avanzar el enumerador hasta el primer elemento de la colección antes de Currentleer el valor de.Therefore, you must call MoveNext to advance the enumerator to the first item of the collection before reading the value of Current.

Current devuelve el mismo objeto hasta que se llama a MoveNext o a Reset.Current returns the same object until either MoveNext or Reset is called. MoveNextestablece Current en el elemento siguiente.MoveNext sets Current to the next item.

Una vez pasado el final de la colección, el enumerador se coloca después del último elemento de la colección y la MoveNext llamada falsea devuelve.After the end of the collection is passed, the enumerator is positioned after the last item in the collection, and calling MoveNext returns false. Si la última llamada a MoveNext devolvió false, Current la llamada a produce una excepción.If the last call to MoveNext returned false, calling Current throws an exception. Para volver Current a establecer en el primer elemento de la colección, puede llamar Reset a seguido MoveNextde.To set Current to the first item of the collection again, you can call Reset followed by MoveNext.

Un enumerador es válido mientras la colección no cambie.An enumerator remains valid as long as the collection remains unchanged. 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 Reset produce una InvalidOperationExceptionexcepción.If changes are made to the collection, such as adding, modifying or deleting items, the enumerator is irrecoverably invalidated and the next call to MoveNext or Reset throws an InvalidOperationException. Si la colección se modifica entre MoveNext y Current, Current devolverá el elemento en el que se establece, aunque el enumerador ya esté invalidado.If the collection is modified between MoveNext and Current, Current will return the item that it is set to, even if the enumerator is already invalidated.

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.The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is intrinsically not a thread-safe procedure. Incluso cuando una colección está sincronizada, otros subprocesos pueden modificar la colección, lo que hace que el enumerador produzca una excepción.Even when a collection is synchronized, other threads could still modify the collection, which causes the enumerator to throw an exception. 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.To guarantee thread safety during enumeration, you can either lock the collection during the entire enumeration or catch the exceptions resulting from changes made by other threads.

Se aplica a

Consulte también: