Partilhar via


Tipos de coleção classificados

A System.Collections.SortedList classe, a System.Collections.Generic.SortedList<TKey,TValue> classe genérica e a System.Collections.Generic.SortedDictionary<TKey,TValue> classe genérica são semelhantes à classe e à HashtableDictionary<TKey,TValue> classe genérica na medida em que implementam a IDictionary interface, mas mantêm seus elementos em ordem de classificação por chave e não têm a característica de inserção e recuperação O(1) das tabelas de hash. As três classes têm várias características em comum:

A tabela a seguir lista algumas das diferenças entre as duas classes de lista ordenada e a SortedDictionary<TKey,TValue> classe.

SortedList Classe não genérica e SortedList<TKey,TValue> classe genérica SortedDictionary<TKey,TValue> classe genérica
As propriedades que retornam chaves e valores são indexadas, permitindo uma recuperação indexada eficiente. Nenhuma recuperação indexada.
A recuperação é O(log n). A recuperação é O(log n).
Inserção e remoção são geralmente O(n), no entanto, a inserção é O(log n) para dados que já estão em ordem de classificação, de modo que cada elemento é adicionado ao final da lista. (Isso pressupõe que um redimensionamento não é necessário.) Inserção e remoção são O(log n).
Usa menos memória do que um SortedDictionary<TKey,TValue>arquivo . Usa mais memória do que a SortedList classe não genérica e a SortedList<TKey,TValue> classe genérica.

Para listas ou dicionários classificados que devem ser acessíveis simultaneamente a partir de vários threads, você pode adicionar lógica de classificação a uma classe que deriva de ConcurrentDictionary<TKey,TValue>. Ao considerar a imutabilidade, os seguintes tipos imutáveis correspondentes seguem semânticas de classificação semelhantes: ImmutableSortedSet<T> e ImmutableSortedDictionary<TKey,TValue>.

Nota

Para valores que contêm suas próprias chaves (por exemplo, registros de funcionários que contêm um número de ID de funcionário), você pode criar uma coleção de chaves que tenha algumas características de uma lista e algumas características de um dicionário derivando da KeyedCollection<TKey,TItem> classe genérica.

A partir do .NET Framework 4, a classe fornece uma árvore de autobalanceamento que mantém os SortedSet<T> dados em ordem ordenada após inserções, exclusões e pesquisas. Esta classe e a classe implementam HashSet<T> a ISet<T> interface.

Consulte também