Compartir a través de


SortedList Clase

Definición

Representa una colección de pares clave-valor ordenados por las claves y que son accesibles por clave y por índice.

public ref class SortedList : System::Collections::IDictionary
public ref class SortedList : ICloneable, System::Collections::IDictionary
public class SortedList : System.Collections.IDictionary
public class SortedList : ICloneable, System.Collections.IDictionary
[System.Serializable]
public class SortedList : ICloneable, System.Collections.IDictionary
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class SortedList : ICloneable, System.Collections.IDictionary
type SortedList = class
    interface ICollection
    interface IEnumerable
    interface IDictionary
type SortedList = class
    interface ICollection
    interface IEnumerable
    interface IDictionary
    interface ICloneable
[<System.Serializable>]
type SortedList = class
    interface IDictionary
    interface ICollection
    interface IEnumerable
    interface ICloneable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type SortedList = class
    interface IDictionary
    interface ICollection
    interface IEnumerable
    interface ICloneable
Public Class SortedList
Implements IDictionary
Public Class SortedList
Implements ICloneable, IDictionary
Herencia
SortedList
Atributos
Implementaciones

Ejemplos

En el ejemplo de código siguiente se muestra cómo crear e inicializar un SortedList objeto y cómo imprimir sus claves y valores.

using System;
using System.Collections;

public class SamplesSortedList2
{
    public static void Main()
    {
        // Creates and initializes a new SortedList.
        SortedList mySL = new SortedList();
        mySL.Add("Third", "!");
        mySL.Add("Second", "World");
        mySL.Add("First", "Hello");

        // Displays the properties and values of the SortedList.
        Console.WriteLine("mySL");
        Console.WriteLine("  Count:    {0}", mySL.Count);
        Console.WriteLine("  Capacity: {0}", mySL.Capacity);
        Console.WriteLine("  Keys and Values:");
        PrintKeysAndValues(mySL);
    }

    public static void PrintKeysAndValues(SortedList myList)
    {
        Console.WriteLine("\t-KEY-\t-VALUE-");
        for (int i = 0; i < myList.Count; i++)
        {
            Console.WriteLine("\t{0}:\t{1}", myList.GetKey(i), myList.GetByIndex(i));
        }
        Console.WriteLine();
    }
}
/*
This code produces the following output.

mySL
  Count:    3
  Capacity: 16
  Keys and Values:
    -KEY-    -VALUE-
    First:    Hello
    Second:    World
    Third:    !
*/
Imports System.Collections

Public Class SamplesSortedList    
    
    Public Shared Sub Main()
        
        ' Creates and initializes a new SortedList.
        Dim mySL As New SortedList()
        mySL.Add("Third", "!")
        mySL.Add("Second", "World")
        mySL.Add("First", "Hello")
        
        ' Displays the properties and values of the SortedList.
        Console.WriteLine("mySL")
        Console.WriteLine("  Count:    {0}", mySL.Count)
        Console.WriteLine("  Capacity: {0}", mySL.Capacity)
        Console.WriteLine("  Keys and Values:")
        PrintKeysAndValues(mySL)
    End Sub
    
    Public Shared Sub PrintKeysAndValues(myList As SortedList)
        Console.WriteLine(ControlChars.Tab & "-KEY-" & ControlChars.Tab & _
           "-VALUE-")
        Dim i As Integer
        For i = 0 To myList.Count - 1
            Console.WriteLine(ControlChars.Tab & "{0}:" & ControlChars.Tab & _
               "{1}", myList.GetKey(i), myList.GetByIndex(i))
        Next i
        Console.WriteLine()
    End Sub
End Class

' This code produces the following output.
' 
' mySL
'   Count:    3
'   Capacity: 16
'   Keys and Values:
'     -KEY-     -VALUE-
'     First:    Hello
'     Second:   World
'     Third:    !

Comentarios

Se SortedList puede acceder a un elemento mediante su clave, como un elemento en cualquier IDictionary implementación o por su índice, como un elemento en cualquier IList implementación.

Importante

No se recomienda usar la SortedList clase para el nuevo desarrollo. En su lugar, se recomienda usar la clase genérica System.Collections.Generic.SortedList<TKey,TValue> . Para obtener más información, consulte Colecciones no genéricas no deben usarse en GitHub.

Un SortedList objeto mantiene internamente dos matrices para almacenar los elementos de la lista; es decir, una matriz para las claves y otra matriz para los valores asociados. Cada elemento es un par clave-valor al que se puede tener acceso como un DictionaryEntry objeto. Una clave no puede ser null, pero un valor puede ser .

La capacidad de un SortedList objeto es el número de elementos que SortedList puede contener. A medida que se agregan elementos a , SortedListla capacidad aumenta automáticamente según sea necesario mediante la reasignación. La capacidad se puede reducir llamando a TrimToSize o estableciendo la Capacity propiedad explícitamente.

Solo .NET Framework: Para objetos muy grandesSortedList, puede aumentar la capacidad máxima a 2 mil millones de elementos en un sistema de 64 bits estableciendo el enabled atributo del elemento true de <gcAllowVeryLargeObjects> configuración en en el entorno en tiempo de ejecución.

Los elementos de un SortedList objeto se ordenan por las claves según una implementación específica IComparer especificada cuando SortedList se crea o según la IComparable implementación proporcionada por las claves. En cualquier caso, un SortedList no permite claves duplicadas.

La secuencia de índice se basa en la secuencia de ordenación. Cuando se agrega un elemento, se inserta en SortedList en el criterio de ordenación correcto y la indexación se ajusta en consecuencia. Cuando se quita un elemento, la indexación también se ajusta en consecuencia. Por lo tanto, el índice de un par clave-valor específico podría cambiar a medida que se agregan o quitan elementos del SortedList objeto.

Las operaciones de un SortedList objeto tienden a ser más lentas que las operaciones de un Hashtable objeto debido a la ordenación. Sin embargo, ofrece SortedList más flexibilidad al permitir el acceso a los valores a través de las claves asociadas o a través de los índices.

Se puede acceder a los elementos de esta colección mediante un índice entero. Los índices de esta colección se basan en cero.

La foreach instrucción del lenguaje C# (for each en Visual Basic) devuelve un objeto del tipo de los elementos de la colección. Dado que cada elemento del SortedList objeto es un par clave-valor, el tipo de elemento no es el tipo de la clave o el tipo del valor. En su lugar, el tipo de elemento es DictionaryEntry. Por ejemplo:

foreach (DictionaryEntry de in mySortedList)
{
    //...
}
For Each de As DictionaryEntry In mySortedList
    '...
Next de

La foreach instrucción es un contenedor alrededor del enumerador, que solo permite leer, no escribir en la colección.

Constructores

Nombre Description
SortedList()

Inicializa una nueva instancia de la SortedList clase que está vacía, tiene la capacidad inicial predeterminada y se ordena según la IComparable interfaz implementada por cada clave agregada al SortedList objeto.

SortedList(IComparer, Int32)

Inicializa una nueva instancia de la SortedList clase que está vacía, tiene la capacidad inicial especificada y se ordena según la interfaz especificada IComparer .

SortedList(IComparer)

Inicializa una nueva instancia de la SortedList clase que está vacía, tiene la capacidad inicial predeterminada y se ordena según la interfaz especificada IComparer .

SortedList(IDictionary, IComparer)

Inicializa una nueva instancia de la SortedList clase que contiene elementos copiados del diccionario especificado, tiene la misma capacidad inicial que el número de elementos copiados y se ordena según la interfaz especificada IComparer .

SortedList(IDictionary)

Inicializa una nueva instancia de la SortedList clase que contiene elementos copiados del diccionario especificado, tiene la misma capacidad inicial que el número de elementos copiados y se ordena según la IComparable interfaz implementada por cada clave.

SortedList(Int32)

Inicializa una nueva instancia de la SortedList clase que está vacía, tiene la capacidad inicial especificada y se ordena según la IComparable interfaz implementada por cada clave agregada al SortedList objeto.

Propiedades

Nombre Description
Capacity

Obtiene o establece la capacidad de un SortedList objeto .

Count

Obtiene el número de elementos contenidos en un SortedList objeto .

IsFixedSize

Obtiene un valor que indica si un SortedList objeto tiene un tamaño fijo.

IsReadOnly

Obtiene un valor que indica si un SortedList objeto es de solo lectura.

IsSynchronized

Obtiene un valor que indica si el acceso a un SortedList objeto está sincronizado (seguro para subprocesos).

Item[Object]

Obtiene o establece el valor asociado a una clave específica de un SortedList objeto .

Keys

Obtiene las claves de un SortedList objeto .

SyncRoot

Obtiene un objeto que se puede usar para sincronizar el acceso a un SortedList objeto .

Values

Obtiene los valores de un SortedList objeto .

Métodos

Nombre Description
Add(Object, Object)

Agrega un elemento con la clave y el valor especificados a un SortedList objeto .

Clear()

Quita todos los elementos de un SortedList objeto .

Clone()

Crea una copia superficial de un SortedList objeto .

Contains(Object)

Determina si un SortedList objeto contiene una clave específica.

ContainsKey(Object)

Determina si un SortedList objeto contiene una clave específica.

ContainsValue(Object)

Determina si un SortedList objeto contiene un valor específico.

CopyTo(Array, Int32)

Copia SortedList los elementos en un objeto unidimensional Array , empezando por el índice especificado de la matriz.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
GetByIndex(Int32)

Obtiene el valor en el índice especificado de un SortedList objeto .

GetEnumerator()

Devuelve un IDictionaryEnumerator objeto que recorre en iteración un SortedList objeto .

GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetKey(Int32)

Obtiene la clave en el índice especificado de un SortedList objeto .

GetKeyList()

Obtiene las claves de un SortedList objeto .

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
GetValueList()

Obtiene los valores de un SortedList objeto .

IndexOfKey(Object)

Devuelve el índice de base cero de la clave especificada en un SortedList objeto .

IndexOfValue(Object)

Devuelve el índice de base cero de la primera aparición del valor especificado en un SortedList objeto .

MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
Remove(Object)

Quita el elemento con la clave especificada de un SortedList objeto .

RemoveAt(Int32)

Quita el elemento en el índice especificado de un SortedList objeto .

SetByIndex(Int32, Object)

Reemplaza el valor en un índice específico de un SortedList objeto .

Synchronized(SortedList)

Devuelve un contenedor sincronizado (seguro para subprocesos) para un SortedList objeto .

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
TrimToSize()

Establece la capacidad en el número real de elementos de un SortedList objeto .

Implementaciones de interfaz explícitas

Nombre Description
IEnumerable.GetEnumerator()

Devuelve un IEnumerator objeto que recorre en iteración .SortedList

Métodos de extensión

Nombre Description
AsParallel(IEnumerable)

Habilita la paralelización de una consulta.

AsQueryable(IEnumerable)

Convierte un IEnumerable en un IQueryable.

Cast<TResult>(IEnumerable)

Convierte los elementos de un IEnumerable al tipo especificado.

OfType<TResult>(IEnumerable)

Filtra los elementos de un IEnumerable en función de un tipo especificado.

Se aplica a

Seguridad para subprocesos

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para subprocesos. No se garantiza que los miembros de instancia sean seguros para el acceso concurrente.

Un SortedList objeto puede admitir varios lectores simultáneamente, siempre y cuando no se modifique la colección. Para garantizar la seguridad del subproceso de SortedList, todas las operaciones deben realizarse a través del contenedor devuelto por el Synchronized(SortedList) método .

La enumeración a través de una colección no es intrínsecamente un procedimiento seguro para subprocesos. Incluso cuando se sincroniza una colección, otros subprocesos todavía pueden modificar la colección, lo que hace que el enumerador inicie una excepción. Para garantizar la seguridad de los subprocesos durante la enumeración, puede bloquear la colección durante toda la enumeración o detectar las excepciones resultantes de los cambios realizados por otros subprocesos.

Consulte también