StringCollection.IEnumerable.GetEnumerator Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Devuelve un IEnumerator objeto que recorre en iteración .StringCollection
virtual System::Collections::IEnumerator ^ System.Collections.IEnumerable.GetEnumerator() = System::Collections::IEnumerable::GetEnumerator;
System.Collections.IEnumerator IEnumerable.GetEnumerator();
abstract member System.Collections.IEnumerable.GetEnumerator : unit -> System.Collections.IEnumerator
override this.System.Collections.IEnumerable.GetEnumerator : unit -> System.Collections.IEnumerator
Function GetEnumerator () As IEnumerator Implements IEnumerable.GetEnumerator
Devoluciones
para IEnumerator .StringCollection
Implementaciones
Comentarios
La instrucción foreach del lenguaje C# (for each en Visual Basic) oculta la complejidad de los enumeradores. Por lo tanto, se recomienda usar foreach , en lugar de manipular directamente el enumerador.
Los enumeradores se pueden usar para leer los datos de la colección, pero no se pueden usar para modificar la colección subyacente.
Inicialmente, 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, la llamada produce Current una excepción. Por lo tanto, debe llamar MoveNext a para avanzar el enumerador al primer elemento de la colección antes de leer el valor de Current.
Current devuelve el mismo objeto hasta MoveNext que se llama a o Reset . MoveNext establece Current en el elemento siguiente.
Si MoveNext pasa el final de la colección, el enumerador se coloca después del último elemento de la colección y MoveNext devuelve false. Cuando el enumerador está en esta posición, las llamadas posteriores a MoveNext también devuelven false. Si se devuelve MoveNextla última llamada a false , la llamada Current produce una excepción. Para volver a establecer Current en el primer elemento de la colección, puede llamar a Reset seguido de MoveNext.
Un enumerador sigue siendo válido siempre que la colección permanezca sin cambios. Si se realizan cambios en la colección, como agregar, modificar o eliminar elementos, el enumerador se invalida irrecuperablemente y la siguiente llamada a MoveNext o Reset produce una InvalidOperationExceptionexcepción . Si la colección se modifica entre MoveNext y Current, Current devuelve el elemento en el que está establecido, incluso si el enumerador ya está invalidado.
El enumerador no tiene acceso exclusivo a la colección; por lo tanto, la enumeración a través de una colección no es intrínsecamente un procedimiento seguro para subprocesos. Incluso cuando se sincroniza una colección, otros subprocesos todavía pueden modificar la colección, lo que hace que el enumerador inicie una excepción. Para garantizar la seguridad de los subprocesos durante la enumeración, 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).