Freigeben über


ResourceSet.GetEnumerator-Methode

Gibt einen IDictionaryEnumerator zurück, der die ResourceSet durchlaufen kann.

Namespace: System.Resources
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
<ComVisibleAttribute(False)> _
Public Overridable Function GetEnumerator As IDictionaryEnumerator
'Usage
Dim instance As ResourceSet
Dim returnValue As IDictionaryEnumerator

returnValue = instance.GetEnumerator
[ComVisibleAttribute(false)] 
public virtual IDictionaryEnumerator GetEnumerator ()
[ComVisibleAttribute(false)] 
public:
virtual IDictionaryEnumerator^ GetEnumerator ()
/** @attribute ComVisibleAttribute(false) */ 
public IDictionaryEnumerator GetEnumerator ()
ComVisibleAttribute(false) 
public function GetEnumerator () : IDictionaryEnumerator

Rückgabewert

Ein IDictionaryEnumerator für dieses ResourceSet.

Ausnahmen

Ausnahmetyp Bedingung

InvalidOperationException

Das ResourceSet wurde geschlossen.

Hinweise

Mit Enumeratoren können die Daten einer Auflistung nur gelesen werden. Die zugrunde liegende Auflistung kann nicht mithilfe von Enumeratoren geändert werden.

Anfangs wird der Enumerator vor dem ersten Element in der Auflistung positioniert. Reset setzt den Enumerator ebenfalls auf diese Position zurück. Beim Aufruf von Current an dieser Position wird eine Ausnahme ausgelöst. Daher muss der Enumerator durch einen Aufruf von MoveNext auf das erste Element der Auflistung gesetzt werden, bevor der Wert von Current gelesen werden kann.

Current gibt so lange dasselbe Objekt zurück, bis MoveNext oder Reset aufgerufen wird. MoveNext legt Current auf das nächste Element fest.

Wenn das Ende der Auflistung überschritten wird, befindet der Enumerator hinter dem letzten Element der Auflistung, und ein Aufruf von MoveNext gibt false zurück. Wenn der letzte Aufruf von MoveNext false zurückgibt, wird beim Aufruf von Current eine Ausnahme ausgelöst. Um Current wieder auf das erste Element der Auflistung festzulegen, können Sie Reset gefolgt von MoveNext aufrufen.

Ein Enumerator bleibt so lange gültig, bis die Auflistung geändert wird. Wenn an der Auflistung Änderungen vorgenommen werden, z. B. durch Hinzufügen, Ändern oder Löschen von Elementen, ist der Enumerator unwiderruflich ungültig, und der nächste Aufruf von MoveNext oder Reset löst eine InvalidOperationException aus. Wenn die Auflistung zwischen MoveNext und Current geändert wird, gibt Current das Element zurück, auf das der Enumerator gesetzt wurde, auch wenn er bereits ungültig ist.

Mithilfe der IDictionaryEnumerator.Entry-Eigenschaft kann auf den im aktuellen Element gespeicherten Wert zugegriffen werden. Mit der IDictionaryEnumerator.Key-Eigenschaft können Sie auf den Schlüssel des aktuellen Elements zugreifen. Mit der IDictionaryEnumerator.Value-Eigenschaft können Sie auf den Wert des aktuellen Elements zugreifen.

Der Enumerator hat keinen exklusiven Zugriff auf die Auflistung. Daher ist die Enumeration einer Auflistung systemintern keine threadsichere Prozedur. Auch wenn eine Auflistung synchronisiert ist, besteht die Möglichkeit, dass weitere Threads die Auflistung verändern. Wenn dies der Fall ist, löst der Enumerator eine Ausnahme aus. Um während der Enumeration Threadsicherheit zu gewährleisten, können Sie entweder die Auflistung während der gesamten Enumeration sperren, oder Sie können die durch andere Threads aufgrund von Änderungen ausgelösten Ausnahmen abfangen.

Beispiel

Im folgenden Beispiel wird veranschaulicht, wie ein ResourceSetrs für die Datei items.resources erstellt wird. Anschließend wird mit der GetEnumerator-Methode ein IDictionaryEnumerator für rs erstellt. Der IDictionaryEnumerator durchläuft rs und zeigt die Inhalte auf der Konsole an.

Imports System
Imports System.Resources
Imports System.Collections
Imports Microsoft.VisualBasic

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
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();
 
    }
}
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();
}
import System.*;
import System.Resources.*;
import System.Collections.*;

class EnumerateResources
{

    public static void main(String[] args)
    {
        // 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.get_Key(), id.get_Value());
        }
        rs.Close();
    } //main 
} //EnumerateResources

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1

.NET Compact Framework

Unterstützt in: 2.0

Siehe auch

Referenz

ResourceSet-Klasse
ResourceSet-Member
System.Resources-Namespace