ResourceSet.GetEnumerator Méthode

Définition

Retourne IDictionaryEnumerator qui peut itérer au sein de 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

Retours

IDictionaryEnumerator pour ce ResourceSet.

Attributs

Exceptions

L'ensemble de ressources a été fermé ou supprimé.

Exemples

L’exemple suivant montre comment créer un ResourceSetrs pour le fichier items.resources. Ensuite, la GetEnumerator méthode est utilisée pour créer un IDictionaryEnumerator pour rs. Itère IDictionaryEnumerator à travers rs et affiche le contenu dans la 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

Remarques

Les énumérateurs autorisent uniquement la lecture des données dans la collection. Les énumérateurs ne peuvent pas être utilisés pour modifier la collection sous-jacente.

Au départ, l'énumérateur est positionné avant le premier élément de la collection. Reset replace également l'énumérateur à cette position. À cette position, l’appel Current lève une exception. Par conséquent, vous devez appeler MoveNext pour avancer l'énumérateur jusqu'au premier élément de la collection avant de lire la valeur de Current.

Current retourne le même objet tant que MoveNext ou Reset n'est pas appelé. MoveNext affecte l'élément suivant à Current.

Une fois la collection terminée, l’énumérateur est placé après le dernier élément de la collection et l’appel à MoveNext retourne la valeur false. Si le dernier appel à MoveNext retourné false, l’appel Current lève une exception. Pour attribuer une nouvelle fois Current au premier élément de la collection, vous pouvez appeler Reset suivi de MoveNext.

Un énumérateur reste valide aussi longtemps que la collection demeure inchangée. Si la collection est modifiée en ajoutant, modifiant ou supprimant des éléments, l'énumérateur devient irrévocablement non valide, et l'appel suivant à MoveNext ou Reset lève un InvalidOperationException. Si la collection est modifiée entre MoveNext et Current, Current retourne l'élément auquel il est attribué, même si l'énumérateur est déjà invalidé.

Vous pouvez utiliser la IDictionaryEnumerator.Entry propriété pour accéder à la valeur stockée dans l’élément actuel. Utilisez la IDictionaryEnumerator.Key propriété pour accéder à la clé de l’élément actuel. Utilisez la IDictionaryEnumerator.Value propriété pour accéder à la valeur de l’élément actuel.

Comme l’énumérateur ne dispose pas d’un accès exclusif à la collection, l’énumération d’une collection n’est pas intrinsèquement une procédure thread-safe. Même lorsqu’une collection est synchronisée, d’autres threads peuvent toujours modifier la collection, ce qui entraîne la levée d’une exception par l’énumérateur. Pour garantir la sécurité des threads au cours de l’énumération, vous pouvez verrouiller la collection pendant l’ensemble de l’énumération ou bien intercepter les exceptions résultant des modifications apportées par les autres threads.

S’applique à