Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Costruttore SortedList (IDictionary, IComparer)

 

Data di pubblicazione: ottobre 2016

Inizializza 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.

Spazio dei nomi:   System.Collections
Assembly:  mscorlib (in mscorlib.dll)

public SortedList(
	IDictionary d,
	IComparer comparer
)

Parametri

d
Type: System.Collections.IDictionary

Implementazione IDictionary da copiare in un nuovo oggetto SortedList.

comparer
Type: System.Collections.IComparer

Implementazione di IComparer da usare quando si confrontano le chiavi.

-oppure-

null per usare l'implementazione IComparable di ciascuna chiave.

Exception Condition
ArgumentNullException

d è null.

InvalidCastException

comparer è null, e uno o più elementi in d non implementano il IComparable interfaccia.

Gli elementi vengono ordinati in base alle specificato IComparer implementazione. Se il comparer parametro null, il IComparable viene utilizzata l'implementazione di ogni chiave; pertanto, ogni chiave deve implementare il IComparable interfaccia devono essere in grado di eseguire confronti con ogni altra chiave di SortedList oggetto.

Oggetto Hashtable oggetto è un esempio di un IDictionary implementazione che può essere passato al costruttore. Il nuovo SortedList oggetto contiene una copia di chiavi e valori archiviati nel Hashtable.

La capacità di un SortedList oggetto è il numero di elementi che la SortedList può contenere. Quando gli elementi vengono aggiunti a un SortedList, la capacità viene aumentata automaticamente come richiesto tramite la riallocazione della matrice interna.

Se è possano prevedere le dimensioni della raccolta, specificando la capacità iniziale Elimina la necessità di eseguire una serie di operazioni di ridimensionamento durante l'aggiunta di elementi di SortedList oggetto.

Questo costruttore è un'operazione O (n) operazione, in cui n è il numero di elementi in d.

Esempio di codice seguente crea raccolte usando diversi SortedList costruttori e illustra le differenze nel comportamento delle raccolte.

using System;
using System.Collections;
using System.Globalization;

public class SamplesSortedList
{

    public static void Main()
    {

        // Create the dictionary.
        Hashtable myHT = new Hashtable();
        myHT.Add("FIRST", "Hello");
        myHT.Add("SECOND", "World");
        myHT.Add("THIRD", "!");

        // Create a SortedList using the default comparer.
        SortedList mySL1 = new SortedList(myHT);
        Console.WriteLine("mySL1 (default):");
        try
        {
            mySL1.Add("first", "Ola!");
        }
        catch (ArgumentException e)
        {
            Console.WriteLine(e);
        }
        PrintKeysAndValues(mySL1);

        // Create a SortedList using the specified case-insensitive comparer.
        SortedList mySL2 = new SortedList(myHT, new CaseInsensitiveComparer());
        Console.WriteLine("mySL2 (case-insensitive comparer):");
        try
        {
            mySL2.Add("first", "Ola!");
        }
        catch (ArgumentException e)
        {
            Console.WriteLine(e);
        }
        PrintKeysAndValues(mySL2);

        // Create a SortedList using the specified CaseInsensitiveComparer,
        // which is based on the Turkish culture (tr-TR), where "I" is not
        // the uppercase version of "i".
        CultureInfo myCul = new CultureInfo("tr-TR");
        SortedList mySL3 = new SortedList(myHT, new CaseInsensitiveComparer(myCul));
        Console.WriteLine("mySL3 (case-insensitive comparer, Turkish culture):");
        try
        {
            mySL3.Add("first", "Ola!");
        }
        catch (ArgumentException e)
        {
            Console.WriteLine(e);
        }
        PrintKeysAndValues(mySL3);

        // Create a SortedList using the
        // StringComparer.InvariantCultureIgnoreCase value.
        SortedList mySL4 = new SortedList(
            myHT, StringComparer.InvariantCultureIgnoreCase);

        Console.WriteLine("mySL4 (InvariantCultureIgnoreCase):");
        try
        {
            mySL4.Add("first", "Ola!");
        }
        catch (ArgumentException e)
        {
            Console.WriteLine(e);
        }
        PrintKeysAndValues(mySL4);

    }

    public static void PrintKeysAndValues(SortedList myList)
    {
        Console.WriteLine("        -KEY-   -VALUE-");
        for (int i = 0; i < myList.Count; i++)
        {
            Console.WriteLine("        {0,-6}: {1}", 
                myList.GetKey(i), myList.GetByIndex(i));
        }
        Console.WriteLine();
    }
}


/* 
This code produces the following output.  Results vary depending on the system's culture settings.

mySL1 (default):
        -KEY-   -VALUE-
        first : Ola!
        FIRST : Hello
        SECOND: World
        THIRD : !

mySL2 (case-insensitive comparer):
System.ArgumentException: Item has already been added.  Key in dictionary: 'FIRST'  Key being added: 'first'
   at System.Collections.SortedList.Add(Object key, Object value)
   at SamplesSortedList.Main()
        -KEY-   -VALUE-
        FIRST : Hello
        SECOND: World
        THIRD : !

mySL3 (case-insensitive comparer, Turkish culture):
        -KEY-   -VALUE-
        FIRST : Hello
        first : Ola!
        SECOND: World
        THIRD : !

mySL4 (InvariantCultureIgnoreCase):
System.ArgumentException: Item has already been added.  Key in dictionary: 'FIRST'  Key being added: 'first'
   at System.Collections.SortedList.Add(Object key, Object value)
   at SamplesSortedList.Main()
        -KEY-   -VALUE-
        FIRST : Hello
        SECOND: World
        THIRD : !

*/

Universal Windows Platform
Disponibile da 10
.NET Framework
Disponibile da 1.1
Torna all'inizio
Mostra: