ResourceSet.GetEnumerator Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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.