Aracılığıyla paylaş


ResourceSet.GetEnumerator Yöntem

Tanım

aracılığıyla 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

Bunun ResourceSetiçin birIDictionaryEnumerator.

Öznitelikler

Özel durumlar

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

Örnekler

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

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 çağrısı Current bir özel durum oluşturur. Bu nedenle, değerini MoveNextokumadan önce numaralandırıcıyı koleksiyonun ilk öğesine ilerletmek için çağrısında Current bulunmalısınız.

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

Koleksiyonun sonu geçirildikten sonra, numaralandırıcı koleksiyondaki son öğeden sonra konumlandırılır ve çağrılır MoveNextfalse. döndürülen falseson çağrı MoveNext ise çağrısı Current bir özel durum oluşturur. Koleksiyonun ilk öğesine yeniden ayarlamak Current için öğesini ve ardından Resetöğesini çağırabilirsinizMoveNext.

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 bir sonraki çağrısı veya MoveNextReset oluşturur InvalidOperationException. Koleksiyon ile CurrentCurrent arasında MoveNext değiştirilirse, numaralandırıcı zaten geçersiz kılınmış olsa bile, olarak ayarlandığı öğeyi döndürür.

geçerli öğede IDictionaryEnumerator.Entry depolanan değere erişmek için özelliğini kullanabilirsiniz. IDictionaryEnumerator.Key geçerli öğenin anahtarına erişmek için özelliğini kullanın. IDictionaryEnumerator.Value geçerli öğenin değerine erişmek için ö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