共用方式為


排序集合類型

System.Collections.SortedList 類別、System.Collections.Generic.SortedList<TKey,TValue> 泛型類別和 System.Collections.Generic.SortedDictionary<TKey,TValue> 泛型類別,類似於實作 IDictionary 介面的 Hashtable 類別和 Dictionary<TKey,TValue> 泛型類別,但它們會依索引鍵的排序次序維持其項目,沒有 O(1) 插入和雜湊資料表的擷取特性。 三個類別有數個共用功能︰

下表列出兩個已排序清單類別與 SortedDictionary<TKey,TValue> 類別之間的部分差異。

SortedList泛型類別與 SortedList<TKey,TValue> 泛型類別 SortedDictionary<TKey,TValue>泛型類別
對傳回索引鍵和值的屬性進行編製索引,以進行有效率的索引擷取。 無索引擷取。
擷取是 O(log n)。 擷取是 O(log n)。
插入和移除一般是 O(n);不過,對於已處於排序次序的資料,插入是 O(log n),因此每個項目都會新增至清單的結尾。 (這假設不需要調整大小)。 插入和移除是 O(log n)。
使用的記憶體少於 SortedDictionary<TKey,TValue> 使用的記憶體多於 SortedList 非泛型類別和 SortedList<TKey,TValue> 泛型類別。

針對必須可以從多個執行緒同時存取的已排序清單或字典,您可以將排序邏輯新增至衍生自 ConcurrentDictionary<TKey,TValue> 的類別。 考慮不變性時,下列對應的不可變類型會遵循類似的排序語意:ImmutableSortedSet<T>ImmutableSortedDictionary<TKey,TValue>

注意

針對包含專屬索引鍵的值 (例如,包含員工識別碼的員工記錄),您可以建立索引鍵集合,而索引鍵集合透過衍生自 KeyedCollection<TKey,TItem> 泛型類別而具有部分清單特性和部分字典特性。

從 .NET Framework 4 開始,SortedSet<T> 類別會提供自我平衡樹狀目錄,以便在插入、刪除和搜尋之後依排列順序維護資料。 這個類別和 HashSet<T> 類別會實作 ISet<T> 介面。

另請參閱