ResourceSet.GetEnumerator Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Retourne un IDictionaryEnumerator qui peut itérer au sein du 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
Un IDictionaryEnumerator pour cette ResourceSet.
- Attributs
Exceptions
Le jeu de ressources a été fermé ou supprimé.
Exemples
L’exemple suivant montre comment créer un ResourceSetrs
pour le fichier items.resources
. Ensuite, la méthode GetEnumerator est utilisée pour créer un IDictionaryEnumerator pour rs
. Le IDictionaryEnumerator effectue une itération dans 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.
Initialement, l’énumérateur est positionné avant le premier élément de la collection. Reset ramène également l’énumérateur à cette position. À cette position, l’appel Current lève une exception. Par conséquent, vous devez appeler MoveNext pour faire avancer l’énumérateur vers le premier élément de la collection avant de lire la valeur de Current.
Current retourne le même objet jusqu’à ce que MoveNext ou Reset soit appelé. MoveNext définit Current à l’élément suivant.
Une fois la fin de la collection passée, l’énumérateur est positionné après le dernier élément de la collection et l’appel de MoveNext retourne false
. Si le dernier appel à MoveNext retourné false
, l’appel Current lève une exception. Pour définir Current sur le premier élément de la collection, vous pouvez appeler Reset suivi de MoveNext.
Un énumérateur reste valide tant que la collection reste inchangée. 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écupérablement invalidé et l’appel suivant à MoveNext ou Reset lève une InvalidOperationException. Si la collection est modifiée entre MoveNext et Current, Current retourne l’élément sur lequel il est défini, même si l’énumérateur est déjà invalidé.
Vous pouvez utiliser la propriété IDictionaryEnumerator.Entry pour accéder à la valeur stockée dans l’élément actuel. Utilisez la propriété IDictionaryEnumerator.Key pour accéder à la clé de l’élément actuel. Utilisez la propriété IDictionaryEnumerator.Value pour accéder à la valeur de l’élément actuel.
L’énumérateur n’a pas d’accès exclusif à la collection ; par conséquent, l’énumération par le biais 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 pendant l’énumération, vous pouvez verrouiller la collection pendant toute l’énumération ou intercepter les exceptions résultant des modifications apportées par d’autres threads.