ResourceSet.GetEnumerator Méthode

Définition

Retourne IDictionaryEnumerator qui peut itérer au sein de ResourceSet.Returns an IDictionaryEnumerator that can iterate through the ResourceSet.

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
Public Overridable Function GetEnumerator () As IDictionaryEnumerator

Retours

Attributs

Exceptions

L'ensemble de ressources a été fermé ou supprimé.The resource set has been closed or disposed.

Exemples

L’exemple suivant montre comment créer un ResourceSet rs pour le fichier items.resources.The following example demonstrates how to create a ResourceSetrs for the file items.resources. Ensuite, la GetEnumerator méthode est utilisée pour créer un IDictionaryEnumerator pour rs.Next, the GetEnumerator method is used to create an IDictionaryEnumerator for rs. Itère au sein rs de et affiche le contenu dans la console. IDictionaryEnumeratorThe IDictionaryEnumerator iterates through rs and displays the contents to the 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.Enumerators only allow reading the data in the collection. Les énumérateurs ne peuvent pas être utilisés pour modifier la collection sous-jacente.Enumerators cannot be used to modify the underlying collection.

Au départ, l'énumérateur est positionné avant le premier élément de la collection.Initially, the enumerator is positioned before the first element in the collection. Reset replace également l'énumérateur à cette position.Reset also brings the enumerator back to this position. À cette position, l' Current appel de lève une exception.At this position, calling Current throws an 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.Therefore, you must call MoveNext to advance the enumerator to the first element of the collection before reading the value of Current.

Current retourne le même objet tant que MoveNext ou Reset n'est pas appelé.Current returns the same object until either MoveNext or Reset is called. MoveNext affecte l'élément suivant à Current.MoveNext sets Current to the next element.

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.After the end of the collection is passed, the enumerator is positioned after the last element in the collection, and calling MoveNext returns false. Si le dernier appel à MoveNext retourné false, l' Current appel à lève une exception.If the last call to MoveNext returned false, calling Current throws an exception. Pour attribuer une nouvelle fois Current au premier élément de la collection, vous pouvez appeler Reset suivi de MoveNext.To set Current to the first element of the collection again, you can call Reset followed by MoveNext.

Un énumérateur est valide tant que la collection demeure inchangée.An enumerator remains valid as long as the collection remains unchanged. Si des modifications sont apportées à la collection, telles que l’ajout, la modification ou la suppression d’éléments, l’énumérateur est irrévocablement invalidé MoveNext et Reset l’appel suivant InvalidOperationExceptionà ou lève une exception.If changes are made to the collection, such as adding, modifying or deleting elements, the enumerator is irrecoverably invalidated and the next call to MoveNext or Reset throws an 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é.If the collection is modified between MoveNext and Current, Current will return the element that it is set to, even if the enumerator is already invalidated.

Vous pouvez utiliser la IDictionaryEnumerator.Entry propriété pour accéder à la valeur stockée dans l’élément actuel.You can use the IDictionaryEnumerator.Entry property to access the value stored in the current element. Utilisez la IDictionaryEnumerator.Key propriété pour accéder à la clé de l’élément actuel.Use the IDictionaryEnumerator.Key property to access the key of the current element. Utilisez la IDictionaryEnumerator.Value propriété pour accéder à la valeur de l’élément actuel.Use the IDictionaryEnumerator.Value property to access the value of the current element.

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.The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is intrinsically not a thread-safe procedure. Même lorsqu’une collection est synchronisée, d’autres threads peuvent toujours modifier la collection, ce qui provoque la levée d’une exception par l’énumérateur.Even when a collection is synchronized, other threads could still modify the collection, which causes the enumerator to throw an exception. 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.To guarantee thread safety during enumeration, you can either lock the collection during the entire enumeration or catch the exceptions resulting from changes made by other threads.

S’applique à