Hashtable.IEnumerable.GetEnumerator Yöntem

Tanım

Bir toplulukta tekrarlanan bir numaralandırıcı döndürür.

 virtual System::Collections::IEnumerator ^ System.Collections.IEnumerable.GetEnumerator() = System::Collections::IEnumerable::GetEnumerator;
System.Collections.IEnumerator IEnumerable.GetEnumerator ();
abstract member System.Collections.IEnumerable.GetEnumerator : unit -> System.Collections.IEnumerator
override this.System.Collections.IEnumerable.GetEnumerator : unit -> System.Collections.IEnumerator
Function GetEnumerator () As IEnumerator Implements IEnumerable.GetEnumerator

Döndürülenler

Toplulukta yinelemek için kullanılabilecek bir IEnumerator öğesi.

Uygulamalar

Açıklamalar

foreach C# dilinin deyimi (for eachVisual Basic'te) numaralandırıcıların karmaşıklığını gizler. Bu nedenle, numaralandırıcıyı doğrudan işlemek yerine kullanılması foreach önerilir.

Numaralandırıcılar, koleksiyonundaki verileri okumak için kullanılabilir, ancak temel 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 sonunu geçerse MoveNext , numaralandırıcı koleksiyondaki son öğeden sonra konumlandırılır ve MoveNext döndürür false. Numaralandırıcı bu konumda olduğunda, sonraki çağrıları MoveNext da döndürür false. 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 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ı geçersiz kılınabilir 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.

Numaralandırıcının koleksiyona özel erişimi yoktur; bu nedenle, bir koleksiyonda numaralandırmak, iş parçacığı güvenli bir yordam değildir. Bir koleksiyon eşitlendiği zaman bile, diğer iş parçacıkları numaralandırıcının özel durum oluşturmasına neden olan koleksiyonu değiştirebilir. 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.

Bu yöntem bir O(1) işlemdir.

Şunlara uygulanır

Ayrıca bkz.