Dictionary<TKey,TValue>.ValueCollection.GetEnumerator Método
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Retorna um enumerador que itera por meio de Dictionary<TKey,TValue>.ValueCollection.
public:
System::Collections::Generic::Dictionary<TKey, TValue>::ValueCollection::Enumerator GetEnumerator();
public System.Collections.Generic.Dictionary<TKey,TValue>.ValueCollection.Enumerator GetEnumerator ();
member this.GetEnumerator : unit -> System.Collections.Generic.Dictionary<'Key, 'Value>.ValueCollection.Enumerator
Public Function GetEnumerator () As Dictionary(Of TKey, TValue).ValueCollection.Enumerator
Um Dictionary<TKey,TValue>.ValueCollection.Enumerator para o Dictionary<TKey,TValue>.ValueCollection.
A instrução foreach
da linguagem C# (for each
em C++, For Each
no Visual Basic) oculta a complexidade de enumeradores. Portanto, o uso de foreach
é recomendado, em vez de manipular diretamente o enumerador.
Os enumeradores podem ser usados para ler os dados na 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. Nesta posição, Current está indefinido. Você deve chamar MoveNext para avançar o enumerador para o primeiro elemento da coleção antes de ler o valor de Current.
O Current retorna o mesmo objeto até MoveNext ser chamado. MoveNext define Current como o próximo elemento.
Caso MoveNext passe o final da coleção, o enumerador é posicionado após o último elemento na coleção e MoveNext retorna false
. Quando o enumerador está nessa posição, as chamadas subsequentes para MoveNext também retornam false
. Caso a última chamada para MoveNext tenha retornado false
, Current está indefinido. Não é possível definir Current como o primeiro elemento da coleção novamente; você deve criar uma nova instância de enumerador em vez disso.
Um enumerador permanece válido desde que a coleção permaneça inalterada. Se forem feitas alterações na coleção, como adicionar elementos ou alterar a capacidade, o enumerador será invalidado irrecuperavelmente e a próxima chamada para MoveNext ou IEnumerator.Reset gerará um InvalidOperationException.
Somente .NET Core 3.0+: os únicos métodos de mutação que não invalidam enumeradores são Remove e Clear.
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. Para garantir acesso thread-safe durante a enumeração, é possível bloquear a coleção durante toda a enumeração. Para permitir que a coleção seja acessada por vários threads para leitura e gravação, você deve implementar sua própria sincronização.
As implementações padrão de coleções em System.Collections.Generic não são sincronizadas.
Este método é uma operação O(1).
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários: