ResourceSet.GetEnumerator Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vrátí hodnotu IDictionaryEnumerator , která může iterovat přes 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
Návraty
A IDictionaryEnumerator pro to ResourceSet.
- Atributy
Výjimky
Sada prostředků byla uzavřena nebo uvolněna.
Příklady
Následující příklad ukazuje, jak vytvořit ResourceSetrs pro soubor items.resources. Dále se GetEnumerator metoda používá k vytvoření pro IDictionaryEnumeratorrs. Iteruje IDictionaryEnumeratorrs a zobrazí obsah konzoly.
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
Poznámky
Enumerátory umožňují čtení pouze dat v kolekci. Enumerátory nelze použít k úpravě podkladové kolekce.
Na začátku je enumerátor umístěn před prvním prvkem v kolekci. Reset také vrátí enumerátor zpět do této pozice. Volání na této pozici Current vyvolá výjimku. Proto je nutné volat MoveNext , aby se enumerátor před čtením hodnoty Current.
Current vrátí stejný objekt, dokud se nevolá MoveNext nebo Reset nevolá. MoveNext nastaví Current na další prvek.
Po předání konce kolekce je enumerátor umístěn za posledním prvkem v kolekci a volání MoveNext vrátí false. Pokud se vrátí poslední volání MoveNextfalse, vyvolá volání Current výjimku. Chcete-li nastavit Current na první prvek kolekce znovu, můžete volat Reset následovaný MoveNext.
Enumerátor zůstane platný, dokud kolekce zůstane beze změny. Pokud jsou v kolekci provedeny změny, jako je přidání, úpravy nebo odstranění prvků, enumerátor je nenávratně neplatný a další volání MoveNext nebo Reset vyvolá výjimku InvalidOperationException. Pokud je kolekce změněna mezi MoveNext a Current, Current vrátí prvek, na který je nastavena, i když je enumerátor již neplatný.
Vlastnost můžete použít IDictionaryEnumerator.Entry pro přístup k hodnotě uložené v aktuálním prvku. IDictionaryEnumerator.Key Použijte vlastnost pro přístup k klíči aktuálního prvku. IDictionaryEnumerator.Value Použijte vlastnost pro přístup k hodnotě aktuálního prvku.
Enumerátor nemá výhradní přístup k kolekci; proto výčet prostřednictvím kolekce není vnitřně bezpečným postupem pro přístup z více vláken. I když je kolekce synchronizována, ostatní vlákna mohou stále upravovat kolekci, což způsobí, že enumerátor vyvolá výjimku. Chcete-li zaručit bezpečnost vláken během výčtu, můžete buď uzamknout kolekci během celého výčtu, nebo zachytit výjimky vyplývající z změn provedených jinými vlákny.