ResourceSet.GetEnumerator Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 bir IDictionaryEnumerator .
- Öznitelikler
Özel durumlar
Kaynak kümesi kapatıldı veya atıldı.
Örnekler
Aşağıdaki örnekte dosyası items.resources
için nasıl oluşturulacağı ResourceSetrs
gösterilmektedir. Ardından, GetEnumerator yöntemi için bir IDictionaryEnumerator oluşturmak için rs
kullanılır. yinelenir IDictionaryEnumeratorrs
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 öğenin önüne yerleştirilir. 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 Currentokumadan önce numaralandırıcıyı koleksiyonun ilk öğesine ilerletmek için çağrısında MoveNext bulunmalısınız.
Currentveya Reset çağrılana kadar MoveNext 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ısı MoveNext döndürür false
. döndürülen false
son ç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 MoveNextöğesini çağırabilirsinizReset.
Bir numaralandırıcı, koleksiyon değişmeden kaldığı 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ı MoveNext veya Reset oluşturur InvalidOperationException. Koleksiyon ile CurrentCurrent arasında MoveNext değiştirilirse, numaralandırıcı zaten geçersiz olsa bile, 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 kullanım erişimi yok; bu nedenle, bir koleksiyon içinde numaralandırma aslında bir iş parçacığı açısından güvenli yordam değildir. Bir koleksiyon eşitlendiğinde bile, diğer iş parçacıkları koleksiyonu yine de değiştirebilir ve bu da numaralandırıcının özel durum oluşturmasına neden olur. Numaralandırma sırasında iş parçacığı güvenliği sağlamak 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
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin