Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Třída System.Collections.SortedList, obecná třída System.Collections.Generic.SortedList<TKey,TValue> a obecná třída System.Collections.Generic.SortedDictionary<TKey,TValue> jsou podobné třídě Hashtable a obecné třídě Dictionary<TKey,TValue> tím, že implementují rozhraní IDictionary, a jelikož udržují své prvky v pořadí podle klíče, nemají vlastnost vložení a načítání charakteristickou pro O(1) operace hash tabulek. Tři třídy mají několik společných funkcí:
Všechny tři třídy implementují System.Collections.IDictionary rozhraní. Dvě obecné třídy také implementují System.Collections.Generic.IDictionary<TKey,TValue> obecné rozhraní.
Každý prvek je pár klíč/hodnota pro účely výčtu.
Poznámka:
Negenerická SortedList třída vrací DictionaryEntry objekty při výčtu, i když dva obecné typy vracejí KeyValuePair<TKey,TValue> objekty.
Prvky jsou seřazeny podle System.Collections.IComparer implementace (pro negenerické SortedList) nebo System.Collections.Generic.IComparer<T> implementace (pro dvě obecné třídy).
Každá třída poskytuje vlastnosti, které vracejí kolekce obsahující pouze klíče nebo pouze hodnoty.
Následující tabulka uvádí některé rozdíly mezi dvěma třídami seřazených seznamů a SortedDictionary<TKey,TValue> třídou.
| SortedList neobecná třída a SortedList<TKey,TValue> obecná třída | SortedDictionary<TKey,TValue> obecná třída |
|---|---|
| Vlastnosti, které vracejí klíče a hodnoty, jsou indexovány, což umožňuje efektivní indexované načítání. | Žádné indexované získávání dat. |
Načtení je O(log n). |
Načtení je O(log n). |
Vložení a odebrání jsou obecně O(n); vložení je však O(log n) pro data, která jsou již v pořadí řazení, takže každý prvek se přidá na konec seznamu. (Předpokládá se, že změna velikosti není nutná.) |
Vložení a odebrání jsou O(log n). |
| Používá méně paměti než SortedDictionary<TKey,TValue>. | Používá více paměti než SortedList negenerická třída a SortedList<TKey,TValue> obecná třída. |
Pro seřazené seznamy nebo slovníky, které musí být přístupné souběžně z více vláken, můžete přidat logiku řazení do třídy odvozené od ConcurrentDictionary<TKey,TValue>. Při zvažování neměnnosti jsou následující neměnné typy řazeny podle podobných sémantických pravidel: ImmutableSortedSet<T> a ImmutableSortedDictionary<TKey,TValue>.
Poznámka:
Pro hodnoty, které obsahují vlastní klíče (například záznamy zaměstnanců obsahující číslo ID zaměstnance), můžete vytvořit kolekci s klíči, která má určité charakteristiky seznamu a některé charakteristiky slovníku odvozením z KeyedCollection<TKey,TItem> obecné třídy.
Počínaje rozhraním .NET Framework 4 poskytuje třída SortedSet<T> automaticky vyvažující strom, který udržuje data v seřazeném pořadí po vložení, odstranění a hledání. Tato třída a HashSet<T> třída implementují ISet<T> rozhraní.