ResourceSet.GetEnumerator Metodo

Definizione

Restituisce un'interfaccia IDictionaryEnumerator che consente di scorrere ResourceSet.

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

Restituisce

Oggetto IDictionaryEnumerator per questo oggetto ResourceSet.

Attributi

Eccezioni

Il set di risorse è stato chiuso o eliminato.

Esempio

Nell'esempio seguente viene illustrato come creare un ResourceSetrs oggetto per il file items.resources. Viene quindi usato il GetEnumerator metodo per creare un IDictionaryEnumerator oggetto per rs. rs Scorre IDictionaryEnumerator e visualizza il contenuto della console.

using namespace System;
using namespace System::Resources;
using namespace System::Collections;
int main()
{
   
   // Create a ResourceSet for the file items.resources.
   ResourceSet^ rs = gcnew 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();
}
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

Commenti

Gli enumeratori consentono solo la lettura dei dati nella raccolta. Non è possibile utilizzare enumeratori per modificare la raccolta sottostante.

Inizialmente l'enumeratore è posizionato davanti al primo elemento della raccolta. Anche il metodo Reset riporta l'enumeratore in questa posizione. In questa posizione, la chiamata Current genera un'eccezione. Pertanto, è necessario chiamare il metodo MoveNext per spostare in avanti l'enumeratore, in corrispondenza del primo elemento della raccolta, prima di leggere il valore di Current.

Current restituisce lo stesso oggetto finché non viene chiamato il metodo MoveNext o Reset. MoveNext imposta Current sull'elemento successivo.

Una volta raggiunta la fine della raccolta, l'enumeratore sarà posizionato dopo l'ultimo elemento, pertanto la chiamata al metodo MoveNext restituisce false. Se l'ultima chiamata a MoveNext restituisce false, la chiamata Current genera un'eccezione. Per impostare nuovamente la proprietà Current sul primo elemento della raccolta, è possibile chiamare il metodo Reset seguito da MoveNext.

Un enumeratore rimane valido finché la raccolta rimane invariata. Se vengono apportate modifiche alla raccolta, ad esempio aggiungendo, modificando o eliminando elementi, l'enumeratore viene invalidato in modo irreversibile e la successiva chiamata al metodo MoveNext o Reset genera un oggetto InvalidOperationException. Se la raccolta viene modificata tra la chiamata del metodo MoveNext e la proprietà Current, la proprietà Current restituirà l'elemento su cui è stata impostata, anche se l'enumeratore risulta già invalidato.

È possibile utilizzare la IDictionaryEnumerator.Entry proprietà per accedere al valore archiviato nell'elemento corrente. Utilizzare la IDictionaryEnumerator.Key proprietà per accedere alla chiave dell'elemento corrente. Utilizzare la IDictionaryEnumerator.Value proprietà per accedere al valore dell'elemento corrente.

L'enumeratore non dispone di accesso esclusivo alla raccolta. L'enumerazione di una raccolta non è quindi una procedura thread-safe. Anche quando una raccolta è sincronizzata, altri thread potrebbero comunque modificare la raccolta, causando la generazione di un'eccezione da parte dell'enumeratore. Per garantire la protezione dei thread durante l'enumerazione, è possibile bloccare la raccolta per l'intera enumerazione oppure intercettare le eccezioni determinate dalle modifiche apportate da altri thread.

Si applica a