Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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ığı Hashtable sınıfa ve Dictionary<TKey,TValue> genel sınıfa IDictionary 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:
Üç sınıf da System.Collections.IDictionary arayüzünü uygular. İki genel sınıf da genel arabirimi uygular System.Collections.Generic.IDictionary<TKey,TValue> .
Her öğe, numaralandırma amacıyla bir anahtar/değer çiftidir.
Uyarı
İki genel tür SortedList nesneleri döndürmesine karşın, genel olmayan DictionaryEntry sınıf numaralandırıldığında KeyValuePair<TKey,TValue> nesneleri döndürür.
Öğeler bir System.Collections.IComparer uygulamaya (nongeneric SortedListiçin) veya bir System.Collections.Generic.IComparer<T> uygulamaya (iki genel sınıf için) göre sıralanır.
Her sınıf, yalnızca anahtarları veya yalnızca değerleri içeren koleksiyonlar döndüren özellikler sağlar.
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, verimli bir şekilde indekslenmiştir ve bu sayede etkili bir şekilde erişim sağlar. | Dizine alınmış bilgi yok. |
Alma işlemi O(log n) olarak hesaplanır. |
Alma işlemi O(log n) olarak hesaplanır. |
Ekleme ve kaldırma genellikle O(n) zamanında yapılır; ancak ekleme, zaten sıralama düzeninde olan veriler için O(log n) zamanında olur, böylece her öğe listenin sonuna eklenir. (Bu, yeniden boyutlandırma gerekmediğini varsayar.) |
Ekleme ve kaldırma, O(log n) olur. |
| Bir SortedDictionary<TKey,TValue>'den daha az bellek kullanır. | SortedList genel olmayan sınıftan ve SortedList<TKey,TValue> genel sınıftan daha fazla bellek kullanır. |
Bir sınıftan ConcurrentDictionary<TKey,TValue> türetilen bir sınıfa sıralama mantığı ekleyerek, birden fazla iş parçacığından eşzamanlı olarak erişilmesi gereken sıralanmış listeler veya sözlükler oluşturabilirsiniz. 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>.
Uyarı
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'ten itibaren, bu SortedSet<T> sınıfı eklemelerden, silmelerden ve aramalardan sonra verileri sıralı düzende tutan kendini dengeleyen bir ağaç sağlar. Bu sınıf ve HashSet<T> sınıfı, ISet<T> arabirimini uygular.