IDictionary.GetEnumerator Método

Definição

Devolve um IDictionaryEnumerator objeto para o IDictionary objeto.

public:
 System::Collections::IDictionaryEnumerator ^ GetEnumerator();
public System.Collections.IDictionaryEnumerator GetEnumerator();
abstract member GetEnumerator : unit -> System.Collections.IDictionaryEnumerator
Public Function GetEnumerator () As IDictionaryEnumerator

Devoluções

Um IDictionaryEnumerator objeto para o IDictionary objeto.

Observações

A instrução foreach da linguagem C# (for each em Visual Basic) esconde a complexidade dos enumeradores. Por isso, recomenda-se usar foreach em vez de manipular diretamente o enumerador.

Os enumeradores podem ser usados para ler os dados da coleção, mas não podem ser usados para modificar a coleção subjacente.

Inicialmente, o enumerador é posicionado antes do primeiro elemento da coleção. Reset também traz o recenseador de volta a esta posição. Nesta posição, a Current propriedade é indefinida. Portanto, deve chamar MoveNext para avançar o enumerador até ao primeiro elemento da coleção antes de ler o valor de Current.

Current devolve o mesmo objeto até que qualquer MoveNext ou Reset seja chamado. MoveNext passa Current para o elemento seguinte.

Se MoveNext passar o final da coleção, o enumerador é posicionado após o último elemento da coleção e MoveNext retorna false. Quando o enumerador está nesta posição, chamadas subsequentes também MoveNext retornam false. Se a última chamada devolvida MoveNextfalse, Current for indefinida. Para definir Current novamente para o primeiro elemento da coleção, pode chamar Reset seguido de MoveNext.

Um enumerador mantém-se válido enquanto a coleção permanecer inalterada. Se forem feitas alterações à coleção, como adicionar, modificar ou eliminar elementos, o enumerador fica irremediavelmente invalidado e o seu comportamento é indefinido.

O enumerador não tem acesso exclusivo à coleção; Portanto, enumerar através de uma coleção não é intrinsecamente um procedimento seguro para threads. Para garantir a segurança da linha durante a enumeração, pode bloquear a coleção durante toda a enumeração. Para permitir que a coleção seja acedida por múltiplos threads para leitura e escrita, deve implementar a sua própria sincronização.

Aplica-se a

Ver também