Tipos de Coleção SortedList e SortedDictionary
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:
Todas as três classes implementam a interface System.Collections.IDictionary.As duas classes genéricas também implementam a interface genérica System.Collections.Generic.IDictionary<TKey, TValue>.
Cada elemento é um par chave/valor para fins de enumeração.
Observação:
O nongeneric SortedList classe retorna DictionaryEntry objetos quando enumerados, enquanto o retorno de dois tipos genéricos KeyValuePair<TKey, TValue> objetos.
Os elementos são classificados de acordo com a implementação de System.Collections.IComparer (Para SortedList não genéricas) ou com a implementação de System.Collections.Generic.IComparer<T>(para as duas classes genéricas).
Cada classe fornece propriedades que retornam coleções contendo apenas as chaves ou apenas os valores.
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> . |
![]() |
---|
Valores que contenham suas próprias chaves (por exemplo, a registros de funcionários que contêm um número de ID 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 da KeyedCollection<TKey, TItem> classe genérica. |
Consulte também
Referência
System.Collections.Generic.SortedList<TKey, TValue>
System.Collections.IDictionary
System.Collections.Generic.IDictionary<TKey, TValue>