Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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:
Las tres clases implementan la System.Collections.IDictionary interfaz . Las dos clases genéricas también implementan la System.Collections.Generic.IDictionary<TKey,TValue> interfaz genérica.
Cada elemento es un par clave-valor con fines de enumeración.
Nota:
La clase no genérica SortedList devuelve DictionaryEntry objetos cuando se enumeran, aunque los dos tipos genéricos devuelven KeyValuePair<TKey,TValue> objetos.
Los elementos se ordenan según una System.Collections.IComparer implementación (para SortedListno genéricos) o una System.Collections.Generic.IComparer<T> implementación (para las dos clases genéricas).
Cada clase proporciona propiedades que devuelven colecciones que solo contienen las claves o solo los valores.
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 .