Bagikan melalui


Jenis Koleksi Terurut

Kelas System.Collections.SortedList, System.Collections.Generic.SortedList<TKey,TValue> kelas generik, dan System.Collections.Generic.SortedDictionary<TKey,TValue> kelas generik mirip Hashtable dengan kelas dan Dictionary<TKey,TValue> kelas generik tempat mereka mengimplementasikan IDictionary antarmuka, tetapi mereka mempertahankan elemen mereka dalam urutan berdasarkan kunci, dan mereka tidak memiliki karakteristik penyisipan dan pengambilan hash O(1). Ketiga kelas memiliki beberapa fitur yang sama:

Tabel berikut 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 diindeks, memungkinkan pengambilan terindeks yang efisien. Tidak ada pengambilan 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 pengubahan 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 kekekalan yang sesuai berikut mengikuti semantik pengurutan yang sama: ImmutableSortedSet<T> dan ImmutableSortedDictionary<TKey,TValue>.

Catatan

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 HashSet<T> kelas mengimplementasikan ISet<T> antarmuka.

Lihat juga