Aracılığıyla paylaş


SortedDictionary<TKey,TValue>.GetEnumerator Yöntem

Tanım

aracılığıyla SortedDictionary<TKey,TValue>yineleyen bir numaralandırıcı döndürür.

public:
 System::Collections::Generic::SortedDictionary<TKey, TValue>::Enumerator GetEnumerator();
public System.Collections.Generic.SortedDictionary<TKey,TValue>.Enumerator GetEnumerator();
member this.GetEnumerator : unit -> System.Collections.Generic.SortedDictionary<'Key, 'Value>.Enumerator
Public Function GetEnumerator () As SortedDictionary(Of TKey, TValue).Enumerator

Döndürülenler

için SortedDictionary<TKey,TValue>ASortedDictionary<TKey,TValue>.Enumerator.

Açıklamalar

Numaralandırma amacıyla, her öğe bir değeri ve anahtarını temsil eden bir KeyValuePair<TKey,TValue> yapıdır.

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 koleksiyondaki verileri okumak için kullanılabilir, ancak temel koleksiyonu değiştirmek için kullanılamaz.

Sözlük, iç ağaç kullanılarak sıralı bir düzende tutulur. Her yeni öğe doğru sıralama konumunda konumlandırılır ve bir öğe kaldırıldığında sıralama düzenini korumak için ağaç ayarlanır. Numaralandırılırken sıralama düzeni korunur.

Başlangıçta, numaralandırıcı koleksiyondaki ilk öğeden önce konumlandırılır. 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 yöntemi çağrılana kadar özelliği 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 falseCurrent son çağrı MoveNext tanımlanmamışsa. Koleksiyonun ilk öğesine yeniden ayarlayamazsınız Current ; bunun yerine yeni bir numaralandırıcı örneği oluşturmanız gerekir.

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 MoveNextIEnumerator.Reset oluşturur InvalidOperationException.

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. Numaralandırma sırasında iş parçacığı güvenliğini garanti etmek için, tüm numaralandırma sırasında koleksiyonu kilitleyebilirsiniz. Koleksiyona okuma ve yazma için birden çok iş parçacığı tarafından erişilmesine izin vermek için kendi eşitlemenizi uygulamanız gerekir.

Ad alanında System.Collections.Generic koleksiyonların varsayılan uygulamaları eşitlenmez.

Bu yöntem bir O(log n) işlemidir; burada n sayıdır.

Şunlara uygulanır

Ayrıca bkz.