Bagikan melalui


SortedList<TKey,TValue>.GetEnumerator Metode

Definisi

Mengembalikan enumerator yang berulang melalui SortedList<TKey,TValue>.

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

Mengembalikan

IEnumerator<KeyValuePair<TKey,TValue>>

IEnumerator<T> Jenis KeyValuePair<TKey,TValue> untuk SortedList<TKey,TValue>.

Penerapan

Keterangan

Pernyataan foreach bahasa C# (for each dalam C++, For Each di Visual Basic) menyembunyikan kompleksitas enumerator. Oleh karena itu, penggunaan foreach disarankan, alih-alih secara langsung memanipulasi enumerator.

Enumerator dapat digunakan untuk membaca data dalam koleksi, tetapi tidak dapat digunakan untuk memodifikasi koleksi yang mendasar.

Kamus dipertahankan dalam urutan yang diurutkan menggunakan pohon internal. Setiap elemen baru diposisikan pada posisi pengurutan yang benar, dan pohon disesuaikan untuk mempertahankan urutan pengurutan setiap kali elemen dihapus. Saat menghitung, urutan sortir dipertahankan.

Awalnya, enumerator diposisikan sebelum elemen pertama dalam koleksi. Pada posisi ini, Current tidak terdefinisi. Oleh karena itu, Anda harus memanggil MoveNext untuk memajukan enumerator ke elemen pertama koleksi sebelum membaca nilai Current.

Current mengembalikan objek yang sama sampai MoveNext dipanggil. MoveNextCurrent mengatur ke elemen berikutnya.

Jika MoveNext melewati akhir koleksi, enumerator diposisikan setelah elemen terakhir dalam koleksi dan MoveNext mengembalikan false. Ketika enumerator berada di posisi ini, panggilan berikutnya untuk MoveNext mengembalikan false. Jika panggilan terakhir untuk MoveNext dikembalikan false, Current tidak ditentukan. Anda tidak dapat mengatur Current ke elemen pertama koleksi lagi; Anda harus membuat instans enumerator baru sebagai gantinya.

Enumerator tetap valid selama koleksi tetap tidak berubah. Jika perubahan dilakukan pada koleksi, seperti menambahkan, memodifikasi, atau menghapus elemen, enumerator tidak valid dan panggilan berikutnya ke MoveNext atau Reset melemparkan InvalidOperationException.

Enumerator tidak memiliki akses eksklusif ke koleksi; oleh karena itu, menghitung melalui koleksi secara intrinsik bukan prosedur aman utas. Untuk menjamin keamanan utas selama enumerasi, Anda dapat mengunci koleksi selama seluruh enumerasi. Untuk memungkinkan koleksi diakses oleh beberapa utas untuk membaca dan menulis, Anda harus menerapkan sinkronisasi Anda sendiri.

Implementasi default koleksi di tidak disinkronkan System.Collections.Generic .

Metode ini adalah operasi O(1).

Berlaku untuk

Lihat juga