Aracılığıyla paylaş


ResourceSet.GetEnumerator Yöntem

Tanım

ResourceSetyineleyebilecek bir IDictionaryEnumerator döndürür.

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

Döndürülenler

Bu ResourceSetiçin bir IDictionaryEnumerator.

Öznitelikler

Özel durumlar

Kaynak kümesi kapatıldı veya atıldı.

Örnekler

Aşağıdaki örnekte, items.resourcesdosyası için nasıl ResourceSetrs oluşturulacağı gösterilmektedir. Ardından, GetEnumerator yöntemi rsiçin bir IDictionaryEnumerator oluşturmak için kullanılır. IDictionaryEnumerator rs boyunca yinelenir ve içeriği konsolda görüntüler.

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

Açıklamalar

Numaralandırıcılar yalnızca koleksiyondaki verilerin okunmasına izin verir. Numaralandırıcılar, temel alınan koleksiyonu değiştirmek için kullanılamaz.

Başlangıçta, numaralandırıcı koleksiyondaki ilk öğeden önce konumlandırılır. Reset ayrıca numaralandırıcıyı bu konuma geri getirir. Bu konumda, Current çağrılması bir özel durum oluşturur. Bu nedenle, Currentdeğerini okumadan önce numaralandırıcıyı koleksiyonun ilk öğesine ilerletmek için MoveNext çağırmalısınız.

Current, MoveNext veya Reset çağrılana kadar aynı nesneyi döndürür. MoveNext Current sonraki öğeye ayarlar.

Koleksiyonun sonu geçirildikten sonra numaralandırıcı koleksiyondaki son öğeden sonra konumlandırılır ve MoveNext çağrılması falsedöndürür. son MoveNext çağrısı falsedöndürdüyse, Current çağrısı bir özel durum oluşturur. Current koleksiyonun ilk öğesine yeniden ayarlamak için, Reset ve ardından MoveNextçağırabilirsiniz.

Bir numaralandırıcı, koleksiyon değişmediği sürece geçerli kalır. Koleksiyonda öğe ekleme, değiştirme veya silme gibi değişiklikler yapılırsa, numaralandırıcı geri alınamaz şekilde geçersiz kılınmış olur ve MoveNext veya Reset sonraki çağrısı bir InvalidOperationExceptionoluşturur. Koleksiyon MoveNext ile Currentarasında değiştirilirse, numaralandırıcı zaten geçersiz kılınmış olsa bile Current ayarlandığı öğeyi döndürür.

geçerli öğede depolanan değere erişmek için IDictionaryEnumerator.Entry özelliğini kullanabilirsiniz. Geçerli öğenin anahtarına erişmek için IDictionaryEnumerator.Key özelliğini kullanın. Geçerli öğenin değerine erişmek için IDictionaryEnumerator.Value özelliğini kullanın.

Numaralandırıcının koleksiyona özel erişimi yoktur; Bu nedenle, bir koleksiyon aracılığıyla numaralandırma, iş parçacığı açısından güvenli bir yordam değildir. Bir koleksiyon eşitlendiğinde bile, diğer iş parçacıkları yine de koleksiyonu değiştirebilir ve bu da numaralandırıcının bir özel durum oluşturmasına neden olur. Numaralandırma sırasında iş parçacığı güvenliğini garanti etmek için, tüm numaralandırma sırasında koleksiyonu kilitleyebilir veya diğer iş parçacıkları tarafından yapılan değişikliklerden kaynaklanan özel durumları yakalayabilirsiniz.

Şunlara uygulanır