Dictionary<TKey,TValue>.IEnumerable.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.
Toplulukta yinelenen 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 each
Visual Basic'te C++For Each
'ta) numaralandırıcıların karmaşıklığını gizler. Bu nedenle, numaralandırıcıyı doğrudan düzenlemek 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 yöntemi ayrıca numaralandırıcıyı bu konuma geri getirir. Bu konumda özelliği Current tanımlanmamıştır. Bu nedenle, değerini Currentokumadan önce numaralandırıcıyı koleksiyonun ilk öğesine ilerletmek için yöntemini çağırmanız MoveNext gerekir.
Current özelliği, veya Reset yöntemi çağrılana kadar aynı öğeyi MoveNext 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 son çağrı MoveNextfalse
Current tanımlanmamışsa. 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 veya kapasiteyi değiştirme 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 IEnumerator.Reset oluşturur InvalidOperationException.
Yalnızca .NET Core 3.0+ : Numaralandırıcıları geçersiz kılmayan tek sessize alma yöntemleri ve Clear'tirRemove.
Numaralandırıcının koleksiyona özel erişimi yoktur; Bu nedenle, bir koleksiyonda numaralandırmak doğası gereği iş parçacığı güvenli bir yordam değildir. Numaralandırma sırasında iş parçacığı güvenliği sağlamak için tüm numaralandırma sırasında koleksiyonu kilitleyebilirsiniz. Okuma ve yazma için birden çok iş parçacığı tarafından erişilecek koleksiyona izin vermek için kendi eşitlemenizi uygulamalısınız.
Ad alanında System.Collections.Generic koleksiyonların varsayılan uygulamaları eşitlenmez.
Bu yöntem bir O(1) işlemidir.