ResourceSet.GetEnumerator Metod

Definition

Returnerar en IDictionaryEnumerator som kan iterera via 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

Returer

En IDictionaryEnumerator för detta ResourceSet.

Attribut

Undantag

Resursuppsättningen har stängts eller tagits bort.

Exempel

I följande exempel visas hur du skapar en ResourceSetrs för filen items.resources. GetEnumerator Sedan används metoden för att skapa en IDictionaryEnumerator för rs. Itererar IDictionaryEnumerator igenom rs och visar innehållet i konsolen.

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

Kommentarer

Uppräknare tillåter endast läsning av data i samlingen. Uppräknare kan inte användas för att ändra den underliggande samlingen.

Inledningsvis placeras uppräknaren före det första elementet i samlingen. Reset tar också uppräknaren tillbaka till den här positionen. I det här läget utlöser anrop Current ett undantag. Därför måste du anropa MoveNext för att flytta uppräknaren till det första elementet i samlingen innan du läser värdet Currentför .

Current returnerar samma objekt tills antingen MoveNext eller Reset anropas. MoveNext anger Current till nästa element.

När slutet av samlingen har skickats placeras uppräknaren efter det sista elementet i samlingen och anropet MoveNext returnerar false. Om det senaste anropet till MoveNext returnerade falseutlöser anropet Current ett undantag. Om du vill ange Current till det första elementet i samlingen igen kan du anropa Reset följt av MoveNext.

En uppräkning förblir giltig så länge samlingen förblir oförändrad. Om ändringar görs i samlingen, till exempel att lägga till, ändra eller ta bort element, ogiltigförklaras uppräknaren oåterkalleligen och nästa anrop till MoveNext eller Reset genererar en InvalidOperationException. Om samlingen ändras mellan MoveNext och CurrentCurrent returnerar det element som den är inställd på, även om uppräknaren redan är ogiltig.

Du kan använda IDictionaryEnumerator.Entry egenskapen för att komma åt värdet som lagras i det aktuella elementet. Använd egenskapen IDictionaryEnumerator.Key för att komma åt nyckeln för det aktuella elementet. Använd egenskapen IDictionaryEnumerator.Value för att komma åt värdet för det aktuella elementet.

Uppräknaren har inte exklusiv åtkomst till samlingen. Därför är uppräkning genom en samling i sig inte en trådsäker procedur. Även när en samling synkroniseras kan andra trådar fortfarande ändra samlingen, vilket gör att uppräknaren genererar ett undantag. För att garantera trådsäkerheten under uppräkningen kan du antingen låsa samlingen under hela uppräkningen eller fånga undantagen från ändringar som gjorts av andra trådar.

Gäller för