Tipe Koleksi Yang Diurutkan

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:

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>.

Lihat juga