ResourceSet.GetEnumerator Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Retourneert een IDictionaryEnumerator die door de 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
Retouren
Een IDictionaryEnumerator voor dit ResourceSet.
- Kenmerken
Uitzonderingen
De resourceset is gesloten of verwijderd.
Voorbeelden
In het volgende voorbeeld ziet u hoe u een ResourceSetrs voor het bestand items.resourcesmaakt. Vervolgens wordt de GetEnumerator methode gebruikt om een IDictionaryEnumerator voor rste maken. De IDictionaryEnumerator inhoud wordt herhaald rs en weergegeven in de console.
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
Opmerkingen
Enumerators staan alleen het lezen van de gegevens in de verzameling toe. Enumerators kunnen niet worden gebruikt om de onderliggende verzameling te wijzigen.
In eerste instantie wordt de enumerator vóór het eerste element in de verzameling weergegeven. Reset brengt ook de enumerator terug naar deze positie. Op deze positie genereert het aanroepen Current een uitzondering. Daarom moet u de opsomming doorschakelen MoveNext naar het eerste element van de verzameling voordat u de waarde van Current.
Current retourneert hetzelfde object tot MoveNext of Reset wordt aangeroepen. MoveNext wordt ingesteld Current op het volgende element.
Nadat het einde van de verzameling is doorgegeven, wordt de enumerator geplaatst na het laatste element in de verzameling en wordt het aanroepen MoveNext geretourneerd false. Als de laatste aanroep die moet MoveNext worden falsegeretourneerd, genereert het aanroepen Current een uitzondering. Als u het eerste element van de verzameling opnieuw wilt instellenCurrent, kunt u het volgende ResetaanroepenMoveNext.
Een enumerator blijft geldig zolang de verzameling ongewijzigd blijft. Als er wijzigingen worden aangebracht in de verzameling, zoals het toevoegen, wijzigen of verwijderen van elementen, wordt de opsomming onherstelbaar ongeldig gemaakt en wordt de volgende aanroep naar MoveNext of Reset genereert een InvalidOperationException. Als de verzameling wordt gewijzigd tussen MoveNext en Current, Current wordt het element geretourneerd waarop het is ingesteld, zelfs als de opsomming al ongeldig is.
U kunt de IDictionaryEnumerator.Entry eigenschap gebruiken om toegang te krijgen tot de waarde die is opgeslagen in het huidige element. Gebruik de IDictionaryEnumerator.Key eigenschap om toegang te krijgen tot de sleutel van het huidige element. Gebruik de IDictionaryEnumerator.Value eigenschap om toegang te krijgen tot de waarde van het huidige element.
De enumerator heeft geen exclusieve toegang tot de verzameling; Daarom is het inventariseren via een verzameling intrinsiek geen thread-veilige procedure. Zelfs wanneer een verzameling wordt gesynchroniseerd, kunnen andere threads de verzameling nog steeds wijzigen, waardoor de enumerator een uitzondering genereert. Om de veiligheid van threads tijdens de inventarisatie te garanderen, kunt u de verzameling vergrendelen tijdens de volledige inventarisatie of de uitzonderingen ondervangen die het gevolg zijn van wijzigingen die door andere threads zijn aangebracht.