Compartir a través de


Tipos de colección ordenados

La System.Collections.SortedList clase, la System.Collections.Generic.SortedList<TKey,TValue> clase genérica y la System.Collections.Generic.SortedDictionary<TKey,TValue> clase genérica son similares a la Hashtable clase y la Dictionary<TKey,TValue> clase genérica en que implementan la IDictionary interfaz, pero mantienen sus elementos en orden por clave, y no tienen la característica de inserción y recuperación de O(1) de las tablas hash. Las tres clases tienen varias características comunes:

En la tabla siguiente se enumeran algunas de las diferencias entre las dos clases de lista ordenadas y la SortedDictionary<TKey,TValue> clase .

SortedList clase no genérica y SortedList<TKey,TValue> clase genérica SortedDictionary<TKey,TValue> clase genérica
Las propiedades que devuelven claves y valores se indexan, lo que permite una recuperación indizada eficaz. No hay recuperación indexada.
El tiempo de recuperación es O(log n). El tiempo de recuperación es O(log n).
La inserción y eliminación suelen ser O(n); sin embargo, la inserción es O(log n) para los datos que ya están en orden, de modo que cada elemento se agregue al final de la lista. (Se supone que no se requiere un cambio de tamaño). La inserción y eliminación son O(log n).
Usa menos memoria que un SortedDictionary<TKey,TValue>. Usa más memoria que la SortedList clase no genérica y la SortedList<TKey,TValue> clase genérica.

Para listas ordenadas o diccionarios que deben ser accesibles simultáneamente desde varios subprocesos, puede agregar lógica de ordenación a una clase que derive de ConcurrentDictionary<TKey,TValue>. Al considerar la inmutabilidad, los siguientes tipos inmutables correspondientes siguen una semántica de ordenación similar: ImmutableSortedSet<T> y ImmutableSortedDictionary<TKey,TValue>.

Nota:

Para los valores que contienen sus propias claves (por ejemplo, registros de empleados que contienen un número de identificador de empleado), puede crear una colección con claves que tenga algunas características de una lista y algunas características de un diccionario derivando de la KeyedCollection<TKey,TItem> clase genérica.

A partir de .NET Framework 4, la SortedSet<T> clase proporciona un árbol de equilibrio automático que mantiene los datos en orden ordenado después de las inserciones, eliminaciones y búsquedas. Esta clase y la HashSet<T> clase implementan la ISet<T> interfaz .

Consulte también