MaterialCollection.GetEnumerator Método

Definição

Retorna um enumerador que pode iterar pela coleção.Returns an enumerator that can iterate through the collection.

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

Retornos

Um enumerador que pode iterar a coleção.An enumerator that can iterate the collection.

Comentários

Os enumeradores permitem somente a leitura dos dados na coleção.Enumerators only allow reading the data in the collection. Enumeradores não podem ser usados para modificar a coleção subjacente.Enumerators cannot be used to modify the underlying collection.

Inicialmente, o enumerador é posicionado antes do primeiro item na coleção.Initially, the enumerator is positioned before the first item in the collection. Nesta posição, a chamada Current gera uma exceção.At this position, calling Current throws an exception. Portanto, você deve chamar MoveNext para avançar o enumerador para o primeiro item da coleção antes de ler o valor de Current.Therefore, you must call MoveNext to advance the enumerator to the first item of the collection before reading the value of Current.

Current retorna o mesmo objeto até que seja MoveNext Reset ou seja chamado.Current returns the same object until either MoveNext or Reset is called. MoveNext define o atual como o próximo item.MoveNext sets Current to the next item.

Depois que o final da coleção é passado, o enumerador é posicionado após o último item na coleção e chamar MoveNext retorna false.After the end of the collection is passed, the enumerator is positioned after the last item in the collection, and calling MoveNext returns false. Se a última chamada para MoveNext retornou false, chamar Current lançará uma exceção.If the last call to MoveNext returned false, calling Current throws an exception. Para definir o atual como o primeiro item da coleção novamente, você pode chamar Reset seguido por MoveNext.To set Current to the first item of the collection again, you can call Reset followed by MoveNext.

Um enumerador permanece válido desde que a coleção continue inalterada.An enumerator remains valid as long as the collection remains unchanged. Se forem feitas alterações na coleção, como adicionar, modificar ou excluir itens, o enumerador será invalidado de forma irrecuperável e a próxima chamada para MoveNext ou Reset lançará uma InvalidOperationException.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. Se a coleção for modificada entre MoveNext e Current, Current retornará o item para o qual ele está definido, mesmo que o enumerador já esteja 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.

O enumerador não tem acesso exclusivo à coleção; por isso, a enumeração por meio de uma coleção não é um procedimento thread-safe intrínseco.The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is intrinsically not a thread-safe procedure. Mesmo quando uma coleção é sincronizada, outros threads ainda podiam modificar a coleção, o que faz com que o enumerador lance uma exceção.Even when a collection is synchronized, other threads could still modify the collection, which causes the enumerator to throw an exception. Para garantir thread-safe durante a enumeração, é possível bloquear a coleção durante toda a enumeração ou verificar as exceções resultantes das alterações feitas por outros threads.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.

Aplica-se a