Para obtener la versión genérica de esta colección, vea System.Collections.Generic.SortedList.
El acceso a un elemento de SortedList se puede obtener por su clave, al igual que con los elementos de una implementación de IDictionary, o por su índice, como con los elementos de una implementación de IList.
SortedList mantiene internamente dos matrices para almacenar los elementos de la lista; es decir, una matriz para las claves y otra para los valores asociados. Cada elemento es un par de clave y valor al que se puede obtener acceso como un objeto DictionaryEntry. Una clave no puede ser referencia de objeto null (Nothing en Visual Basic), pero un valor sí puede serlo.
La capacidad de SortedList es el número de elementos que SortedList puede contener. La capacidad inicial predeterminada de SortedList es 0. A medida que se agregan elementos a una colección SortedList, la capacidad aumenta automáticamente según lo requiera la reasignación. La capacidad se puede disminuir si se llama al método TrimToSize o si se establece explícitamente la propiedad Capacity.
Los elementos de SortedList se ordenan por claves en función de una implementación determinada de IComparer que se especifica al crear SortedList o de acuerdo con la implementación de IComparable proporcionada por las propias claves. En cualquier caso, SortedList no admite claves duplicadas.
La secuencia de índices se basa en la secuencia de ordenación. Cuando se agrega un elemento, se inserta en SortedList en el orden correcto y la indización se ajusta en consonancia. Cuando se quita un elemento, la indización también se ajusta en consonancia. Por lo tanto, el índice de un par de clave y valor específico puede cambiar a medida que se agregan o quitan elementos de la colección SortedList.
Las operaciones de SortedList suelen ser más lentas que las operaciones de Hashtable debido a la ordenación. Sin embargo, SortedList ofrece más flexibilidad, ya que permite el acceso a los valores mediante las claves asociadas o mediante los índices.
Se puede obtener acceso a los elementos de esta colección utilizando un índice de tipo entero. Los índices de esta colección están basados en cero.
La instrucción foreach del lenguaje C# (for each en Visual Basic) requiere el tipo de cada elemento de la colección. Como los elementos de SortedList son pares de clave y valor, el tipo del elemento no se corresponde con el tipo de la clave ni con el del valor. En su lugar, el tipo de elemento es la estructura DictionaryEntry. Por ejemplo:
foreach (DictionaryEntry de in mySortedList) {...}
For Each de As DictionaryEntry In mySortedList
...
Next myDE
La instrucción foreach es un contenedor del enumerador, que sólo permite la lectura pero no la escritura en la colección.