Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kelas System.Collections.SortedList, kelas generik System.Collections.Generic.SortedList<TKey,TValue>, dan kelas generik System.Collections.Generic.SortedDictionary<TKey,TValue> mirip dengan kelas Hashtable dan kelas generik Dictionary<TKey,TValue> di mana mereka mengimplementasikan antarmuka IDictionary, tetapi mereka mempertahankan elemen mereka dalam urutan berdasarkan kunci, dan mereka tidak memiliki karakteristik penyisipan dan pengambilan O(1) dari tabel hash. Ketiga kelas tersebut memiliki beberapa fitur yang sama:
Ketiga kelas mengimplementasikan System.Collections.IDictionary antarmuka. Dua kelas generik juga mengimplementasikan System.Collections.Generic.IDictionary<TKey,TValue> antarmuka generik.
Setiap elemen adalah pasangan kunci/nilai untuk tujuan enumerasi.
Nota
Kelas nongenerik SortedList mengembalikan DictionaryEntry objek saat dijumlahkan, meskipun dua jenis generik mengembalikan KeyValuePair<TKey,TValue> objek.
Elemen diurutkan sesuai dengan System.Collections.IComparer implementasi (untuk nongenerik SortedList) atau System.Collections.Generic.IComparer<T> implementasi (untuk dua kelas generik).
Setiap kelas menyediakan properti yang mengembalikan koleksi yang hanya berisi kunci atau hanya nilai.
Tabel berikut ini mencantumkan beberapa perbedaan antara dua kelas daftar yang diurutkan dan SortedDictionary<TKey,TValue> kelas .
| SortedList kelas nongenerik dan SortedList<TKey,TValue> kelas generik | SortedDictionary<TKey,TValue> kelas generik |
|---|---|
| Properti yang mengembalikan kunci dan nilai sudah diindeks, sehingga memungkinkan pengambilan data secara efisien melalui indeks. | Tidak ada pengambilan data yang terindeks. |
Pengambilan adalah O(log n). |
Pengambilan adalah O(log n). |
Penyisipan dan penghapusan umumnya O(n); namun, penyisipan adalah O(log n) untuk data yang sudah dalam urutan pengurutan, sehingga setiap elemen ditambahkan ke akhir daftar. (Ini mengasumsikan bahwa perubahan ukuran tidak diperlukan.) |
Penyisipan dan penghapusan adalah O(log n). |
| Menggunakan lebih sedikit memori daripada SortedDictionary<TKey,TValue>. | Menggunakan lebih banyak memori daripada SortedList kelas nongenerik dan SortedList<TKey,TValue> kelas generik. |
Untuk daftar atau kamus yang diurutkan yang harus dapat diakses secara bersamaan dari beberapa utas, Anda dapat menambahkan logika pengurutan ke kelas yang berasal dari ConcurrentDictionary<TKey,TValue>. Saat mempertimbangkan kekekalan, jenis yang tidak dapat diubah yang sesuai berikut mengikuti semantik pengurutan serupa: ImmutableSortedSet<T> dan ImmutableSortedDictionary<TKey,TValue>.
Nota
Untuk nilai yang berisi kunci mereka sendiri (misalnya, catatan karyawan yang berisi nomor ID karyawan), Anda dapat membuat koleksi kunci yang memiliki beberapa karakteristik daftar dan beberapa karakteristik kamus dengan berasal dari KeyedCollection<TKey,TItem> kelas generik.
Dimulai dengan .NET Framework 4, SortedSet<T> kelas menyediakan pohon penyeimbangan mandiri yang mempertahankan data dalam urutan yang diurutkan setelah penyisipan, penghapusan, dan pencarian. Kelas ini dan kelas HashSet<T> mengimplementasikan antarmuka ISet<T>.