Partilhar via


Tipos de coleção classificada

A classe System.Collections.SortedList, a classe genérica System.Collections.Generic.SortedList<TKey, TValue>, e a classe genérica System.Collections.Generic.SortedDictionary<TKey, TValue> são semelhantes à classe Hashtable e à classe genérica Dictionary<TKey, TValue>, as quais implementam a interface IDictionary, mas mantêm seus elementos em ordem de classificação por chave, e não têm inserção O(1) e recuperação característica 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 listas ordenadas e a classe SortedDictionary<TKey, TValue>.

Classe não genérica SortedList e classe genérica SortedList<TKey, TValue>.

Classe genérica SortedDictionary<TKey, TValue>.

As propriedades que retornam chaves e valores são indexadas, permitindo recuperação indexada eficiente.

Recuperação não indexada.

Recuperação é O(logn).

Recuperação é O(logn).

Inserção e remoção são geralmente O (n); no entanto, inserção é O(1) para dados que já estejam em ordem de classificação, assim, cada elemento é adicionado ao fim da lista. (Isso pressupõe que um redimensionamento não é necessário.)

Inserção e remoção são O(logn).

Utiliza menos memória que um SortedDictionary<TKey, TValue>.

Usa mais memória do que a classe não genérica SortedList e a classe genérica SortedList<TKey, TValue> .

Para listas classificadas ou dicionários que possa ser acessados simultaneamente de vários threads, você pode adicionar lógica de ordenação para uma classe que deriva de ConcurrentDictionary<TKey, TValue>.

Observação

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

Começando com o .NET Framework versão 4, o SortedSet<T> classe fornece uma árvore de self-balancing que mantém os dados em ordem classificada após inserções, exclusões e pesquisas. Essa classe e o HashSet<T> classe implementar a ISet<T> interface.

Consulte também

Referência

System.Collections.IDictionary

System.Collections.Generic.IDictionary<TKey, TValue>

ConcurrentDictionary<TKey, TValue>

Conceitos

Tipos de Coleção Comumente Usadas