Sıralanmış Koleksiyon Türleri

System.Collections.SortedList sınıfı, System.Collections.Generic.SortedList<TKey,TValue> genel sınıfı ve System.Collections.Generic.SortedDictionary<TKey,TValue> genel sınıfı, arabirimini uyguladığı IDictionary sınıfa ve Dictionary<TKey,TValue> genel sınıfa Hashtable benzer, ancak öğelerini anahtara göre sıralama düzeninde tutar ve karma tabloların O(1) ekleme ve alma özelliğine sahip değildir. Üç sınıfın birçok ortak özelliği vardır:

Aşağıdaki tabloda, iki sıralanmış liste sınıfı ile SortedDictionary<TKey,TValue> sınıfı arasındaki bazı farklar listelenmiştir.

SortedList nongeneric sınıfı ve SortedList<TKey,TValue> genel sınıfı SortedDictionary<TKey,TValue> generic sınıfı
Anahtarları ve değerleri döndüren özellikler dizine alınır ve verimli dizine alınan alma olanağı sağlar. Dizine alınan alma yok.
Alma işlemi O(günlük) değeridir n. Alma işlemi O(günlük) değeridir n.
Ekleme ve kaldırma genellikle O(n); ancak ekleme, zaten sıralama düzeninde olan veriler için O(günlük n) olur, böylece her öğe listenin sonuna eklenir. (Bu, yeniden boyutlandırma gerekmediğini varsayar.) Ekleme ve kaldırma, O(günlük) olur n.
bir değerinden daha SortedDictionary<TKey,TValue>az bellek kullanır. Genel olmayan sınıftan ve genel sınıftan SortedListSortedList<TKey,TValue> daha fazla bellek kullanır.

Birden çok iş parçacığından eşzamanlı olarak erişilebilir olması gereken sıralanmış listeler veya sözlükler için, sınıfından ConcurrentDictionary<TKey,TValue>türetilen bir sınıfa sıralama mantığı ekleyebilirsiniz. Değişmezlik göz önünde bulundurulduğunda, aşağıdaki karşılık gelen sabit türler benzer sıralama semantiği izler: ImmutableSortedSet<T> ve ImmutableSortedDictionary<TKey,TValue>.

Not

Kendi anahtarlarını içeren değerler için (örneğin, çalışan kimliği numarası içeren çalışan kayıtları), genel sınıftan türeterek KeyedCollection<TKey,TItem> bir listenin bazı özelliklerine ve sözlüğün bazı özelliklerine sahip anahtarlı bir koleksiyon oluşturabilirsiniz.

.NET Framework 4'den başlayarak, sınıfı ekleme, SortedSet<T> silme ve aramalardan sonra verileri sıralı düzende tutan bir kendi kendine dengeleyici ağaç sağlar. Bu sınıf ve HashSet<T> sınıfı arabirimini ISet<T> uygular.

Ayrıca bkz.