SortedList SortedList SortedList SortedList Class

Definizione

Rappresenta un insieme di coppie chiave/valore, ordinate in base alle chiavi e accessibili per chiave e per indice.Represents a collection of key/value pairs that are sorted by the keys and are accessible by key and by index.

public ref class SortedList : ICloneable, System::Collections::IDictionary
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class SortedList : ICloneable, System.Collections.IDictionary
type SortedList = class
    interface IDictionary
    interface ICloneable
    interface ICollection
    interface IEnumerable
Public Class SortedList
Implements ICloneable, IDictionary
Ereditarietà
SortedListSortedListSortedListSortedList
Attributi
Implementazioni

Esempi

Esempio di codice seguente viene illustrato come creare e inizializzare un SortedList oggetto e come stampare i relativi valori e chiavi.The following code example shows how to create and initialize a SortedList object and how to print out its keys and values.

#using <system.dll>

using namespace System;
using namespace System::Collections;
public ref class SamplesSortedList
{
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();
   }

};

int main()
{

   // Creates and initializes a new SortedList.
   SortedList^ mySL = gcnew 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:" );
   SamplesSortedList::PrintKeysAndValues( mySL );
}

/*
This code produces the following output.

mySL
Count:    3
Capacity: 16
Keys and Values:
-KEY-    -VALUE-
First:    Hello
Second:    World
Third:    !
*/
using System;
using System.Collections;
public class SamplesSortedList  {

   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
Imports System.Collections
Imports Microsoft.VisualBasic

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:    !
 

Commenti

Oggetto SortedList può accedere alla chiave, ad esempio, un elemento in qualsiasi elemento IDictionary implementazione, o mediante il relativo indice, ad esempio, un elemento in una qualsiasi IList implementazione.A SortedList element can be accessed by its key, like an element in any IDictionary implementation, or by its index, like an element in any IList implementation.

Importante

Non è consigliabile usare il SortedList classe per i nuovi sviluppi.We don't recommend that you use the SortedList class for new development. È invece consigliabile usare il tipo generico System.Collections.Generic.SortedList<TKey,TValue> classe.Instead, we recommend that you use the generic System.Collections.Generic.SortedList<TKey,TValue> class. Per altre informazioni, vedere raccolte Non generiche non devono essere usate su GitHub.For more information, see Non-generic collections shouldn't be used on GitHub.

Oggetto SortedList oggetto mantiene internamente due matrici per archiviare gli elementi dell'elenco, vale a dire una singola matrice per le chiavi e un'altra matrice per i valori associati.A SortedList object internally maintains two arrays to store the elements of the list; that is, one array for the keys and another array for the associated values. Ogni elemento è una coppia chiave/valore che è accessibile come un DictionaryEntry oggetto.Each element is a key/value pair that can be accessed as a DictionaryEntry object. Non può essere una chiave null, ma può essere un valore.A key cannot be null, but a value can be.

La capacità di un SortedList oggetto è il numero di elementi di SortedList può contenere.The capacity of a SortedList object is the number of elements the SortedList can hold. Man mano che gli elementi vengono aggiunti a un SortedList, automaticamente aumentato la capacità in base alle necessità tramite la riallocazione.As elements are added to a SortedList, the capacity is automatically increased as required through reallocation. È possibile diminuire la capacità chiamando TrimToSize oppure impostando il Capacity proprietà in modo esplicito.The capacity can be decreased by calling TrimToSize or by setting the Capacity property explicitly.

Solo in .NET framework: Per grandi SortedList oggetti, è possibile aumentare la capacità massima a 2 miliardi di elementi in un sistema a 64 bit impostando il enabled attributo del <gcAllowVeryLargeObjects> elemento di configurazione true nel ambiente di runtime..NET Framework only: For very large SortedList objects, you can increase the maximum capacity to 2 billion elements on a 64-bit system by setting the enabled attribute of the <gcAllowVeryLargeObjects> configuration element to true in the run-time environment.

Gli elementi di un SortedList oggetti vengono ordinati secondo le chiavi di uno in base a uno specifico IComparer implementazione specificato quando il SortedList viene creato o in base al parametro il IComparable implementazione fornita dalle chiavi stesse.The elements of a SortedList object are sorted by the keys either according to a specific IComparer implementation specified when the SortedList is created or according to the IComparable implementation provided by the keys themselves. In entrambi i casi, un SortedList non consentono chiavi duplicate.In either case, a SortedList does not allow duplicate keys.

La sequenza di indice è basata sulla sequenza di ordinamento.The index sequence is based on the sort sequence. Quando viene aggiunto un elemento, viene inserito nella SortedList nell'ordinamento corretto, ordine e l'indicizzazione si adegua di conseguenza.When an element is added, it is inserted into SortedList in the correct sort order, and the indexing adjusts accordingly. Quando un elemento viene rimosso, l'indicizzazione anche si adegua di conseguenza.When an element is removed, the indexing also adjusts accordingly. Pertanto, l'indice di una coppia chiave/valore potrebbe cambiare come gli elementi vengono aggiunti o rimossi dal SortedList oggetto.Therefore, the index of a specific key/value pair might change as elements are added or removed from the SortedList object.

Operazioni su un SortedList oggetto tendono a essere più lento rispetto alle operazioni su un Hashtable oggetto a causa dell'ordinamento.Operations on a SortedList object tend to be slower than operations on a Hashtable object because of the sorting. Tuttavia, il SortedList offre maggiore flessibilità consentendo l'accesso ai valori tramite le chiavi associate o tramite gli indici.However, the SortedList offers more flexibility by allowing access to the values either through the associated keys or through the indexes.

Gli elementi in questa raccolta sono accessibile tramite un indice integer.Elements in this collection can be accessed using an integer index. Gli indici in questa raccolta sono in base zero.Indexes in this collection are zero-based.

Il foreach istruzione del linguaggio c# (for each in Visual Basic) restituisce un oggetto del tipo degli elementi nella raccolta.The foreach statement of the C# language (for each in Visual Basic) returns an object of the type of the elements in the collection. Poiché ogni elemento del SortedList oggetto è una coppia chiave/valore, il tipo di elemento non è il tipo della chiave o il tipo del valore.Since each element of the SortedList object is a key/value pair, the element type is not the type of the key or the type of the value. Piuttosto, il tipo di elemento è DictionaryEntry.Rather, the element type is DictionaryEntry. Ad esempio:For example:

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

Il foreach istruzione è un wrapper per l'enumeratore, che consente solo di leggere da, non la scrittura, la raccolta.The foreach statement is a wrapper around the enumerator, which allows only reading from, not writing to, the collection.

Costruttori

SortedList() SortedList() SortedList() SortedList()

Inizializza una nuova istanza della classe SortedList che è vuota, ha la capacità iniziale predefinita ed è ordinata in base all'interfaccia IComparable implementata da ciascuna chiave aggiunta all'oggetto SortedList.Initializes a new instance of the SortedList class that is empty, has the default initial capacity, and is sorted according to the IComparable interface implemented by each key added to the SortedList object.

SortedList(IComparer) SortedList(IComparer) SortedList(IComparer) SortedList(IComparer)

Inizializza una nuova istanza della classe SortedList, che è vuota, ha la capacità iniziale predefinita ed è ordinata in base all'interfaccia IComparer specificata.Initializes a new instance of the SortedList class that is empty, has the default initial capacity, and is sorted according to the specified IComparer interface.

SortedList(IComparer, Int32) SortedList(IComparer, Int32) SortedList(IComparer, Int32) SortedList(IComparer, Int32)

Consente l'inizializzazione di una nuova istanza della classe SortedList, che è vuota, ha la capacità iniziale specificata ed è ordinata in base all'interfaccia IComparer specificata.Initializes a new instance of the SortedList class that is empty, has the specified initial capacity, and is sorted according to the specified IComparer interface.

SortedList(IDictionary) SortedList(IDictionary) SortedList(IDictionary) SortedList(IDictionary)

Inizializza una nuova istanza della classe SortedList che contiene gli elementi copiati dal dizionario specificato, ha la capacità iniziale definita dal numero di elementi copiati ed è ordinata in base all'interfacciaIComparable implementata da ciascuna chiave.Initializes a new instance of the SortedList class that contains elements copied from the specified dictionary, has the same initial capacity as the number of elements copied, and is sorted according to the IComparable interface implemented by each key.

SortedList(IDictionary, IComparer) SortedList(IDictionary, IComparer) SortedList(IDictionary, IComparer) SortedList(IDictionary, IComparer)

Consente l'inizializzazione di una nuova istanza della classe SortedList che contiene gli elementi copiati dal dizionario specificato, ha la capacità iniziale definita dal numero degli elementi copiati ed è ordinata in base all'interfaccia IComparer specificata.Initializes a new instance of the SortedList class that contains elements copied from the specified dictionary, has the same initial capacity as the number of elements copied, and is sorted according to the specified IComparer interface.

SortedList(Int32) SortedList(Int32) SortedList(Int32) SortedList(Int32)

Inizializza una nuova istanza della classe SortedList che è vuota, di cui è stata specificata la capacità iniziale e che è ordinata in base all'interfaccia IComparable implementata da ciascuna chiave aggiunta all'oggetto SortedList.Initializes a new instance of the SortedList class that is empty, has the specified initial capacity, and is sorted according to the IComparable interface implemented by each key added to the SortedList object.

Proprietà

Capacity Capacity Capacity Capacity

Ottiene o imposta la capacità di un oggetto SortedList.Gets or sets the capacity of a SortedList object.

Count Count Count Count

Ottiene il numero degli elementi contenuti in un oggetto SortedList.Gets the number of elements contained in a SortedList object.

IsFixedSize IsFixedSize IsFixedSize IsFixedSize

Ottiene un valore che indica se le dimensioni di un oggetto SortedList sono fisse.Gets a value indicating whether a SortedList object has a fixed size.

IsReadOnly IsReadOnly IsReadOnly IsReadOnly

Ottiene un valore che indica se un oggetto SortedList è di sola lettura.Gets a value indicating whether a SortedList object is read-only.

IsSynchronized IsSynchronized IsSynchronized IsSynchronized

Ottiene un valore che indica se l'accesso a un oggetto SortedList è sincronizzato (thread-safe).Gets a value indicating whether access to a SortedList object is synchronized (thread safe).

Item[Object] Item[Object] Item[Object] Item[Object]

Ottiene o imposta il valore associato a una chiave specifica in un oggetto SortedList.Gets or sets the value associated with a specific key in a SortedList object.

Keys Keys Keys Keys

Ottiene le chiavi di un oggetto SortedList.Gets the keys in a SortedList object.

SyncRoot SyncRoot SyncRoot SyncRoot

Ottiene un oggetto che può essere utilizzato per sincronizzare l'accesso all'oggetto SortedList.Gets an object that can be used to synchronize access to a SortedList object.

Values Values Values Values

Ottiene i valori di un oggetto SortedList.Gets the values in a SortedList object.

Metodi

Add(Object, Object) Add(Object, Object) Add(Object, Object) Add(Object, Object)

Consente di aggiungere a un oggetto SortedList un elemento con la chiave e il valore specificati.Adds an element with the specified key and value to a SortedList object.

Clear() Clear() Clear() Clear()

Rimuove tutti gli elementi da un oggetto SortedList.Removes all elements from a SortedList object.

Clone() Clone() Clone() Clone()

Crea una copia superficiale di un oggetto SortedList.Creates a shallow copy of a SortedList object.

Contains(Object) Contains(Object) Contains(Object) Contains(Object)

Determina se un oggetto SortedList contiene una chiave specifica.Determines whether a SortedList object contains a specific key.

ContainsKey(Object) ContainsKey(Object) ContainsKey(Object) ContainsKey(Object)

Determina se un oggetto SortedList contiene una chiave specifica.Determines whether a SortedList object contains a specific key.

ContainsValue(Object) ContainsValue(Object) ContainsValue(Object) ContainsValue(Object)

Determina se un oggetto SortedList contiene un valore specifico.Determines whether a SortedList object contains a specific value.

CopyTo(Array, Int32) CopyTo(Array, Int32) CopyTo(Array, Int32) CopyTo(Array, Int32)

Copia gli elementi SortedList in un oggetto Array unidimensionale, a partire dall'indice specificato nella matrice.Copies SortedList elements to a one-dimensional Array object, starting at the specified index in the array.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetByIndex(Int32) GetByIndex(Int32) GetByIndex(Int32) GetByIndex(Int32)

Ottiene il valore in corrispondenza dell'indice specificato di un oggetto SortedList.Gets the value at the specified index of a SortedList object.

GetEnumerator() GetEnumerator() GetEnumerator() GetEnumerator()

Restituisce un oggetto IDictionaryEnumerator che consente di scorrere un oggetto SortedList.Returns an IDictionaryEnumerator object that iterates through a SortedList object.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Inherited from Object)
GetKey(Int32) GetKey(Int32) GetKey(Int32) GetKey(Int32)

Ottiene la chiave in corrispondenza dell'indice specificato di un oggetto SortedList.Gets the key at the specified index of a SortedList object.

GetKeyList() GetKeyList() GetKeyList() GetKeyList()

Ottiene le chiavi di un oggetto SortedList.Gets the keys in a SortedList object.

GetType() GetType() GetType() GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Inherited from Object)
GetValueList() GetValueList() GetValueList() GetValueList()

Ottiene i valori di un oggetto SortedList.Gets the values in a SortedList object.

IndexOfKey(Object) IndexOfKey(Object) IndexOfKey(Object) IndexOfKey(Object)

Viene restituito l'indice in base zero della chiave specificata in un oggetto SortedList.Returns the zero-based index of the specified key in a SortedList object.

IndexOfValue(Object) IndexOfValue(Object) IndexOfValue(Object) IndexOfValue(Object)

Viene restituito l'indice in base zero della prima occorrenza del valore specificato in un oggetto SortedList.Returns the zero-based index of the first occurrence of the specified value in a SortedList object.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Inherited from Object)
Remove(Object) Remove(Object) Remove(Object) Remove(Object)

Rimuove da un oggetto SortedList l'elemento con la chiave specificata.Removes the element with the specified key from a SortedList object.

RemoveAt(Int32) RemoveAt(Int32) RemoveAt(Int32) RemoveAt(Int32)

Rimuove l'elemento in corrispondenza dell'indice specificato di un oggetto SortedList.Removes the element at the specified index of a SortedList object.

SetByIndex(Int32, Object) SetByIndex(Int32, Object) SetByIndex(Int32, Object) SetByIndex(Int32, Object)

Sostituisce il valore in corrispondenza di un indice specifico in un oggetto SortedList.Replaces the value at a specific index in a SortedList object.

Synchronized(SortedList) Synchronized(SortedList) Synchronized(SortedList) Synchronized(SortedList)

Restituisce un wrapper sincronizzato (thread-safe) per un oggetto SortedList.Returns a synchronized (thread-safe) wrapper for a SortedList object.

ToString() ToString() ToString() ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Inherited from Object)
TrimToSize() TrimToSize() TrimToSize() TrimToSize()

Imposta la capacità sul numero effettivo di elementi contenuti in un oggetto SortedList.Sets the capacity to the actual number of elements in a SortedList object.

Implementazioni dell'interfaccia esplicita

IEnumerable.GetEnumerator() IEnumerable.GetEnumerator() IEnumerable.GetEnumerator() IEnumerable.GetEnumerator()

Restituisce un oggetto IEnumerator che esegue l'iterazione di SortedList.Returns an IEnumerator that iterates through the SortedList.

Extension Methods

Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable)

Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable)

Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable)

Consente la parallelizzazione di una query.Enables parallelization of a query.

AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable)

Converte un' IEnumerable a un IQueryable.Converts an IEnumerable to an IQueryable.

Si applica a

Thread safety

Statici pubblici (Shared in Visual Basic) membri di questo tipo sono thread-safe.Public static (Shared in Visual Basic) members of this type are thread safe. I membri di istanza non sono garantiti come thread-safe.Any instance members are not guaranteed to be thread safe.

Oggetto SortedList oggetto può supportare più lettori contemporaneamente, fino a quando non viene modificata la raccolta.A SortedList object can support multiple readers concurrently, as long as the collection is not modified. Per garantire la sicurezza dei thread dei SortedList, tutte le operazioni devono essere eseguite tramite il wrapper restituito dal Synchronized(SortedList) (metodo).To guarantee the thread safety of the SortedList, all operations must be done through the wrapper returned by the Synchronized(SortedList) method.

L'enumerazione di una raccolta non è di per sé una procedura thread-safe.Enumerating through a collection is intrinsically not a thread-safe procedure. Anche se una raccolta è sincronizzata, è possibile che venga modificata da altri thread, con conseguente generazione di un'eccezione da parte dell'enumeratore.Even when a collection is synchronized, other threads can still modify the collection, which causes the enumerator to throw an exception. Per garantire la protezione dei thread durante l'enumerazione, è possibile bloccare la raccolta per l'intera enumerazione oppure intercettare le eccezioni determinate dalle modifiche apportate da altri thread.To guarantee thread safety during enumeration, you can either lock the collection during the entire enumeration or catch the exceptions resulting from changes made by other threads.

Vedi anche