ResourceSet.GetEnumerator Método

Definição

Retorna e IDictionaryEnumerator que pode iterar através do ResourceSet.

public:
 virtual System::Collections::IDictionaryEnumerator ^ GetEnumerator();
[System.Runtime.InteropServices.ComVisible(false)]
public virtual System.Collections.IDictionaryEnumerator GetEnumerator();
public virtual System.Collections.IDictionaryEnumerator GetEnumerator();
[<System.Runtime.InteropServices.ComVisible(false)>]
abstract member GetEnumerator : unit -> System.Collections.IDictionaryEnumerator
override this.GetEnumerator : unit -> System.Collections.IDictionaryEnumerator
abstract member GetEnumerator : unit -> System.Collections.IDictionaryEnumerator
override this.GetEnumerator : unit -> System.Collections.IDictionaryEnumerator
Public Overridable Function GetEnumerator () As IDictionaryEnumerator

Devoluções

E IDictionaryEnumerator para isto ResourceSet.

Atributos

Exceções

O conjunto de recursos foi encerrado ou descartado.

Exemplos

O exemplo seguinte demonstra como criar um ResourceSetrs para o ficheiro items.resources. De seguida, o GetEnumerator método é usado para criar um IDictionaryEnumerator para rs. Ele IDictionaryEnumerator percorre rs e mostra o conteúdo na consola.

using System;
using System.Resources;
using System.Collections;

class EnumerateResources 
{
    public static void Main() 
    {
        // Create a ResourceSet for the file items.resources.
        ResourceSet rs = new ResourceSet("items.resources"); 

        // Create an IDictionaryEnumerator to read the data in the ResourceSet.
        IDictionaryEnumerator id = rs.GetEnumerator(); 

        // Iterate through the ResourceSet and display the contents to the console. 
        while(id.MoveNext())
          Console.WriteLine("\n[{0}] \t{1}", id.Key, id.Value); 

        rs.Close();
    }
}
Imports System.Resources
Imports System.Collections

Class EnumerateResources
   
   Public Shared Sub Main()
      ' Create a ResourceSet for the file items.resources.
      Dim rs As New ResourceSet("items.resources")      
      
      ' Create an IDictionaryEnumerator to read the data in the ResourceSet.
      Dim id As IDictionaryEnumerator = rs.GetEnumerator()
      
      ' Iterate through the ResourceSet and display the contents to the console. 
      While id.MoveNext()
         Console.WriteLine(ControlChars.NewLine + "[{0}] " + ControlChars.Tab + "{1}", id.Key, id.Value)
      End While 

      rs.Close()

   End Sub

End Class

Observações

Os enumeradores só permitem a leitura dos dados na coleção. Os enumeradores 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, chamar Current lança uma exceção. 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.

Após o fim da coleção, o enumerador é posicionado após o último elemento da coleção, e chamando MoveNext devolve false. Se a última chamada for MoveNext retornada false, chamar Current lança uma exceção. 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 é irremediavelmente invalidado e a próxima chamada para MoveNext ou Reset lança um InvalidOperationException. Se a coleção for modificada entre MoveNext e Current, Current devolverá o elemento ao qual está definida, mesmo que o enumerador já esteja invalidado.

Pode usar a IDictionaryEnumerator.Entry propriedade para aceder ao valor armazenado no elemento atual. Use a IDictionaryEnumerator.Key propriedade para aceder à chave do elemento atual. Use a IDictionaryEnumerator.Value propriedade para aceder ao valor do elemento atual.

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. Mesmo quando uma coleção está sincronizada, outros threads podem ainda modificar a coleção, o que faz com que o enumerador lance uma exceção. Para garantir a segurança dos threads durante a enumeração, pode bloquear a coleção durante toda a enumeração ou apanhar as exceções resultantes de alterações feitas por outros threads.

Aplica-se a