Dictionary<TKey,TValue> Dictionary<TKey,TValue> Dictionary<TKey,TValue> Dictionary<TKey,TValue> Constructors

Definizione

Overload

Dictionary<TKey,TValue>() Dictionary<TKey,TValue>() Dictionary<TKey,TValue>()

Inizializza una nuova istanza vuota della classe Dictionary<TKey,TValue>, con capacità iniziale predefinita e che usa l'operatore di confronto di eguaglianza predefinito per il tipo di chiave.Initializes a new instance of the Dictionary<TKey,TValue> class that is empty, has the default initial capacity, and uses the default equality comparer for the key type.

Dictionary<TKey,TValue>(IDictionary<TKey,TValue>) Dictionary<TKey,TValue>(IDictionary<TKey,TValue>) Dictionary<TKey,TValue>(IDictionary<TKey,TValue>) Dictionary<TKey,TValue>(IDictionary<TKey,TValue>)

Inizializza una nuova istanza della classe Dictionary<TKey,TValue> che contiene elementi copiati dall'interfaccia IDictionary<TKey,TValue> specificata e che usa l'operatore di confronto uguaglianze predefinito per il tipo di chiave.Initializes a new instance of the Dictionary<TKey,TValue> class that contains elements copied from the specified IDictionary<TKey,TValue> and uses the default equality comparer for the key type.

Dictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>) Dictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>) Dictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>) Dictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>)
Dictionary<TKey,TValue>(IEqualityComparer<TKey>) Dictionary<TKey,TValue>(IEqualityComparer<TKey>) Dictionary<TKey,TValue>(IEqualityComparer<TKey>) Dictionary<TKey,TValue>(IEqualityComparer<TKey>)

Inizializza una nuova istanza vuota della classe Dictionary<TKey,TValue>, con la capacità iniziale predefinita e che usa l'interfaccia IEqualityComparer<T> specificata.Initializes a new instance of the Dictionary<TKey,TValue> class that is empty, has the default initial capacity, and uses the specified IEqualityComparer<T>.

Dictionary<TKey,TValue>(Int32) Dictionary<TKey,TValue>(Int32) Dictionary<TKey,TValue>(Int32) Dictionary<TKey,TValue>(Int32)

Inizializza una nuova istanza vuota della classe Dictionary<TKey,TValue>, con capacità iniziale specificata e che usa l'operatore di confronto di eguaglianza predefinito per il tipo di chiave.Initializes a new instance of the Dictionary<TKey,TValue> class that is empty, has the specified initial capacity, and uses the default equality comparer for the key type.

Dictionary<TKey,TValue>(IDictionary<TKey,TValue>, IEqualityComparer<TKey>) Dictionary<TKey,TValue>(IDictionary<TKey,TValue>, IEqualityComparer<TKey>) Dictionary<TKey,TValue>(IDictionary<TKey,TValue>, IEqualityComparer<TKey>) Dictionary<TKey,TValue>(IDictionary<TKey,TValue>, IEqualityComparer<TKey>)

Inizializza una nuova istanza della classe Dictionary<TKey,TValue> che contiene gli elementi copiati dall'interfaccia IDictionary<TKey,TValue> specificata e che usa l'interfaccia IEqualityComparer<T> indicata.Initializes a new instance of the Dictionary<TKey,TValue> class that contains elements copied from the specified IDictionary<TKey,TValue> and uses the specified IEqualityComparer<T>.

Dictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>, IEqualityComparer<TKey>) Dictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>, IEqualityComparer<TKey>) Dictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>, IEqualityComparer<TKey>) Dictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>, IEqualityComparer<TKey>)
Dictionary<TKey,TValue>(Int32, IEqualityComparer<TKey>) Dictionary<TKey,TValue>(Int32, IEqualityComparer<TKey>) Dictionary<TKey,TValue>(Int32, IEqualityComparer<TKey>) Dictionary<TKey,TValue>(Int32, IEqualityComparer<TKey>)

Inizializza una nuova istanza vuota della classe Dictionary<TKey,TValue>, con la capacità iniziale specificata e che usa l'interfaccia IEqualityComparer<T> specificata.Initializes a new instance of the Dictionary<TKey,TValue> class that is empty, has the specified initial capacity, and uses the specified IEqualityComparer<T>.

Dictionary<TKey,TValue>(SerializationInfo, StreamingContext) Dictionary<TKey,TValue>(SerializationInfo, StreamingContext) Dictionary<TKey,TValue>(SerializationInfo, StreamingContext) Dictionary<TKey,TValue>(SerializationInfo, StreamingContext)

Inizializza una nuova istanza della classe Dictionary<TKey,TValue> con dati serializzati.Initializes a new instance of the Dictionary<TKey,TValue> class with serialized data.

Dictionary<TKey,TValue>() Dictionary<TKey,TValue>() Dictionary<TKey,TValue>()

Inizializza una nuova istanza vuota della classe Dictionary<TKey,TValue>, con capacità iniziale predefinita e che usa l'operatore di confronto di eguaglianza predefinito per il tipo di chiave.Initializes a new instance of the Dictionary<TKey,TValue> class that is empty, has the default initial capacity, and uses the default equality comparer for the key type.

public:
 Dictionary();
public Dictionary ();
Public Sub New ()

Esempi

Esempio di codice seguente crea un oggetto vuoto Dictionary<TKey,TValue> delle stringhe con chiavi di stringa e Usa il Add metodo per aggiungere alcuni elementi.The following code example creates an empty Dictionary<TKey,TValue> of strings with string keys and uses the Add method to add some elements. Nell'esempio viene illustrato che il Add metodo genera un ArgumentException durante il tentativo di aggiungere una chiave duplicata.The example demonstrates that the Add method throws an ArgumentException when attempting to add a duplicate key.

Questo esempio di codice è parte di un esempio più esaustivo disponibile per il Dictionary<TKey,TValue> classe.This code example is part of a larger example provided for the Dictionary<TKey,TValue> class.

// Create a new dictionary of strings, with string keys.
//
Dictionary<String^, String^>^ openWith =
    gcnew Dictionary<String^, String^>();

// Add some elements to the dictionary. There are no
// duplicate keys, but some of the values are duplicates.
openWith->Add("txt", "notepad.exe");
openWith->Add("bmp", "paint.exe");
openWith->Add("dib", "paint.exe");
openWith->Add("rtf", "wordpad.exe");

// The Add method throws an exception if the new key is
// already in the dictionary.
try
{
    openWith->Add("txt", "winword.exe");
}
catch (ArgumentException^)
{
    Console::WriteLine("An element with Key = \"txt\" already exists.");
}
// Create a new dictionary of strings, with string keys.
//
Dictionary<string, string> openWith = 
    new Dictionary<string, string>();

// Add some elements to the dictionary. There are no 
// duplicate keys, but some of the values are duplicates.
openWith.Add("txt", "notepad.exe");
openWith.Add("bmp", "paint.exe");
openWith.Add("dib", "paint.exe");
openWith.Add("rtf", "wordpad.exe");

// The Add method throws an exception if the new key is 
// already in the dictionary.
try
{
    openWith.Add("txt", "winword.exe");
}
catch (ArgumentException)
{
    Console.WriteLine("An element with Key = \"txt\" already exists.");
}
' Create a new dictionary of strings, with string keys.
'
Dim openWith As New Dictionary(Of String, String)

' Add some elements to the dictionary. There are no 
' duplicate keys, but some of the values are duplicates.
openWith.Add("txt", "notepad.exe")
openWith.Add("bmp", "paint.exe")
openWith.Add("dib", "paint.exe")
openWith.Add("rtf", "wordpad.exe")

' The Add method throws an exception if the new key is 
' already in the dictionary.
Try
    openWith.Add("txt", "winword.exe")
Catch 
    Console.WriteLine("An element with Key = ""txt"" already exists.")
End Try

Commenti

Ogni chiave in un Dictionary<TKey,TValue> deve essere univoca in base all'operatore di uguaglianza predefinito.Every key in a Dictionary<TKey,TValue> must be unique according to the default equality comparer.

Dictionary<TKey,TValue> richiede un'implementazione di uguaglianza per determinare se le chiavi sono uguali.Dictionary<TKey,TValue> requires an equality implementation to determine whether keys are equal. Questo costruttore utilizza l'operatore di confronto di uguaglianza predefinito, EqualityComparer<T>.Default.This constructor uses the default generic equality comparer, EqualityComparer<T>.Default. Se tipo TKey implementa il System.IEquatable<T> interfaccia generica, operatore di uguaglianza predefinito Usa tale implementazione.If type TKey implements the System.IEquatable<T> generic interface, the default equality comparer uses that implementation. In alternativa, è possibile specificare un'implementazione del IEqualityComparer<T> generico interfaccia usando un costruttore che accetta un comparer parametro.Alternatively, you can specify an implementation of the IEqualityComparer<T> generic interface by using a constructor that accepts a comparer parameter.

Nota

Se è possibile stimare le dimensioni della raccolta, usando un costruttore che specifichi la capacità iniziale evita di dover eseguire alcune operazioni di ridimensionamento durante l'aggiunta di elementi di Dictionary<TKey,TValue>.If you can estimate the size of the collection, using a constructor that specifies the initial capacity eliminates the need to perform a number of resizing operations while adding elements to the Dictionary<TKey,TValue>.

Questo costruttore è un'operazione o (1).This constructor is an O(1) operation.

Vedi anche

Dictionary<TKey,TValue>(IDictionary<TKey,TValue>) Dictionary<TKey,TValue>(IDictionary<TKey,TValue>) Dictionary<TKey,TValue>(IDictionary<TKey,TValue>) Dictionary<TKey,TValue>(IDictionary<TKey,TValue>)

Inizializza una nuova istanza della classe Dictionary<TKey,TValue> che contiene elementi copiati dall'interfaccia IDictionary<TKey,TValue> specificata e che usa l'operatore di confronto uguaglianze predefinito per il tipo di chiave.Initializes a new instance of the Dictionary<TKey,TValue> class that contains elements copied from the specified IDictionary<TKey,TValue> and uses the default equality comparer for the key type.

public:
 Dictionary(System::Collections::Generic::IDictionary<TKey, TValue> ^ dictionary);
public Dictionary (System.Collections.Generic.IDictionary<TKey,TValue> dictionary);
new System.Collections.Generic.Dictionary<'Key, 'Value> : System.Collections.Generic.IDictionary<'Key, 'Value> -> System.Collections.Generic.Dictionary<'Key, 'Value>
Public Sub New (dictionary As IDictionary(Of TKey, TValue))

Parametri

Eccezioni

dictionary contiene una o più chiavi duplicate.dictionary contains one or more duplicate keys.

Esempi

Esempio di codice seguente viene illustrato come utilizzare il Dictionary<TKey,TValue>(IEqualityComparer<TKey>) costruttore per inizializzare un Dictionary<TKey,TValue> con contenuto da un altro dizionario ordinato.The following code example shows how to use the Dictionary<TKey,TValue>(IEqualityComparer<TKey>) constructor to initialize a Dictionary<TKey,TValue> with sorted content from another dictionary. L'esempio di codice crea un SortedDictionary<TKey,TValue> e lo popola con i dati in ordine casuale, quindi passa le SortedDictionary<TKey,TValue> per il Dictionary<TKey,TValue>(IEqualityComparer<TKey>) costruttore, la creazione di un Dictionary<TKey,TValue> che vengono ordinati.The code example creates a SortedDictionary<TKey,TValue> and populates it with data in random order, then passes the SortedDictionary<TKey,TValue> to the Dictionary<TKey,TValue>(IEqualityComparer<TKey>) constructor, creating a Dictionary<TKey,TValue> that is sorted. Ciò è utile se si vuole compilare un dizionario ordinato che a un certo punto diventa statico. copiare i dati da un SortedDictionary<TKey,TValue> a un Dictionary<TKey,TValue> migliora la velocità di recupero.This is useful if you need to build a sorted dictionary that at some point becomes static; copying the data from a SortedDictionary<TKey,TValue> to a Dictionary<TKey,TValue> improves retrieval speed.

using System;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        // Create a new sorted dictionary of strings, with string 
        // keys.
        SortedDictionary<string, string> openWith = 
            new SortedDictionary<string, string>();
        
        // Add some elements to the dictionary. 
        openWith.Add("txt", "notepad.exe");
        openWith.Add("bmp", "paint.exe");
        openWith.Add("dib", "paint.exe");
        openWith.Add("rtf", "wordpad.exe");
        
        // Create a Dictionary of strings with string keys, and 
        // initialize it with the contents of the sorted dictionary.
        Dictionary<string, string> copy = 
            new Dictionary<string, string>(openWith);

        // List the contents of the copy.
        Console.WriteLine();
        foreach( KeyValuePair<string, string> kvp in copy )
        {
            Console.WriteLine("Key = {0}, Value = {1}", 
               kvp.Key, kvp.Value);
        }
    }
}

/* This code example produces the following output:

Key = bmp, Value = paint.exe
Key = dib, Value = paint.exe
Key = rtf, Value = wordpad.exe
Key = txt, Value = notepad.exe
 */
Imports System
Imports System.Collections.Generic

Public Class Example
    
    Public Shared Sub Main() 

        ' Create a new sorted dictionary of strings, with string 
        ' keys.
        Dim openWith As New SortedDictionary(Of String, String)
        
        ' Add some elements to the sorted dictionary. 
        openWith.Add("txt", "notepad.exe")
        openWith.Add("bmp", "paint.exe")
        openWith.Add("dib", "paint.exe")
        openWith.Add("rtf", "wordpad.exe")
        
        ' Create a Dictionary of strings with string keys, and 
        ' initialize it with the contents of the sorted dictionary.
        Dim copy As New Dictionary(Of String, String)(openWith)

        ' List the contents of the copy.
        Console.WriteLine()
        For Each kvp As KeyValuePair(Of String, String) In copy
            Console.WriteLine("Key = {0}, Value = {1}", _
                kvp.Key, kvp.Value)
        Next kvp

    End Sub

End Class

' This code example produces the following output:
'
'Key = bmp, Value = paint.exe
'Key = dib, Value = paint.exe
'Key = rtf, Value = wordpad.exe
'Key = txt, Value = notepad.exe

Commenti

Ogni chiave di un Dictionary<TKey,TValue> deve essere univoca in base all'impostazione predefinita di confronto uguaglianze; allo stesso modo, ogni chiave nell'origine dictionary deve anche essere univoca in base all'operatore di uguaglianza predefinito.Every key in a Dictionary<TKey,TValue> must be unique according to the default equality comparer; likewise, every key in the source dictionary must also be unique according to the default equality comparer.

La capacità iniziale della nuova Dictionary<TKey,TValue> sia abbastanza grande per contenere tutti gli elementi dictionary.The initial capacity of the new Dictionary<TKey,TValue> is large enough to contain all the elements in dictionary.

Dictionary<TKey,TValue> richiede un'implementazione di uguaglianza per determinare se le chiavi sono uguali.Dictionary<TKey,TValue> requires an equality implementation to determine whether keys are equal. Questo costruttore utilizza l'operatore di confronto di uguaglianza predefinito, EqualityComparer<T>.Default.This constructor uses the default generic equality comparer, EqualityComparer<T>.Default. Se tipo TKey implementa il System.IEquatable<T> interfaccia generica, operatore di uguaglianza predefinito Usa tale implementazione.If type TKey implements the System.IEquatable<T> generic interface, the default equality comparer uses that implementation. In alternativa, è possibile specificare un'implementazione del IEqualityComparer<T> generico interfaccia usando un costruttore che accetta un comparer parametro.Alternatively, you can specify an implementation of the IEqualityComparer<T> generic interface by using a constructor that accepts a comparer parameter.

Questo costruttore è un'operazione o (n), dove n è il numero di elementi in dictionary.This constructor is an O(n) operation, where n is the number of elements in dictionary.

Vedi anche

Dictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>) Dictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>) Dictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>) Dictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>)

public:
 Dictionary(System::Collections::Generic::IEnumerable<System::Collections::Generic::KeyValuePair<TKey, TValue>> ^ collection);
public Dictionary (System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>> collection);
new System.Collections.Generic.Dictionary<'Key, 'Value> : seq<System.Collections.Generic.KeyValuePair<'Key, 'Value>> -> System.Collections.Generic.Dictionary<'Key, 'Value>
Public Sub New (collection As IEnumerable(Of KeyValuePair(Of TKey, TValue)))

Parametri

collection
IEnumerable<KeyValuePair<TKey,TValue>>

Dictionary<TKey,TValue>(IEqualityComparer<TKey>) Dictionary<TKey,TValue>(IEqualityComparer<TKey>) Dictionary<TKey,TValue>(IEqualityComparer<TKey>) Dictionary<TKey,TValue>(IEqualityComparer<TKey>)

Inizializza una nuova istanza vuota della classe Dictionary<TKey,TValue>, con la capacità iniziale predefinita e che usa l'interfaccia IEqualityComparer<T> specificata.Initializes a new instance of the Dictionary<TKey,TValue> class that is empty, has the default initial capacity, and uses the specified IEqualityComparer<T>.

public:
 Dictionary(System::Collections::Generic::IEqualityComparer<TKey> ^ comparer);
public Dictionary (System.Collections.Generic.IEqualityComparer<TKey> comparer);
new System.Collections.Generic.Dictionary<'Key, 'Value> : System.Collections.Generic.IEqualityComparer<'Key> -> System.Collections.Generic.Dictionary<'Key, 'Value>
Public Sub New (comparer As IEqualityComparer(Of TKey))

Parametri

comparer
IEqualityComparer<TKey>

Implementazione di IEqualityComparer<T> da usare per confrontare le chiavi oppure null per usare l'oggetto EqualityComparer<T> predefinito per il tipo di chiave.The IEqualityComparer<T> implementation to use when comparing keys, or null to use the default EqualityComparer<T> for the type of the key.

Esempi

L'esempio di codice seguente crea un Dictionary<TKey,TValue> con un operatore di uguaglianza tra maiuscole e minuscole per le impostazioni cultura correnti.The following code example creates a Dictionary<TKey,TValue> with a case-insensitive equality comparer for the current culture. L'esempio aggiunge quattro elementi, alcune con chiavi di lettere minuscole e altre con le chiavi di lettere maiuscole.The example adds four elements, some with lower-case keys and some with upper-case keys. Nell'esempio vengono quindi tenta di aggiungere un elemento con una chiave che si differenzia da una chiave esistente solo per i casi, intercetta l'eccezione risulta e visualizza un messaggio di errore.The example then attempts to add an element with a key that differs from an existing key only by case, catches the resulting exception, and displays an error message. Infine, l'esempio visualizza gli elementi nel dizionario.Finally, the example displays the elements in the dictionary.

using System;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        // Create a new Dictionary of strings, with string keys 
        // and a case-insensitive comparer for the current culture.
        Dictionary<string, string> openWith = 
                      new Dictionary<string, string>( 
                          StringComparer.CurrentCultureIgnoreCase);
        
        // Add some elements to the dictionary.
        openWith.Add("txt", "notepad.exe");
        openWith.Add("bmp", "paint.exe");
        openWith.Add("DIB", "paint.exe");
        openWith.Add("rtf", "wordpad.exe");

        // Try to add a fifth element with a key that is the same 
        // except for case; this would be allowed with the default
        // comparer.
        try
        {
            openWith.Add("BMP", "paint.exe");
        }
        catch (ArgumentException)
        {
            Console.WriteLine("\nBMP is already in the dictionary.");
        }
        
        // List the contents of the sorted dictionary.
        Console.WriteLine();
        foreach( KeyValuePair<string, string> kvp in openWith )
        {
            Console.WriteLine("Key = {0}, Value = {1}", kvp.Key, 
                kvp.Value);
        }
    }
}

/* This code example produces the following output:

BMP is already in the dictionary.

Key = txt, Value = notepad.exe
Key = bmp, Value = paint.exe
Key = DIB, Value = paint.exe
Key = rtf, Value = wordpad.exe
 */
Imports System
Imports System.Collections.Generic

Public Class Example
    
    Public Shared Sub Main() 

        ' Create a new Dictionary of strings, with string keys 
        ' and a case-insensitive comparer for the current culture.
        Dim openWith As New Dictionary(Of String, String)( _
            StringComparer.CurrentCultureIgnoreCase)
        
        ' Add some elements to the dictionary. 
        openWith.Add("txt", "notepad.exe")
        openWith.Add("bmp", "paint.exe")
        openWith.Add("DIB", "paint.exe")
        openWith.Add("rtf", "wordpad.exe")

        ' Try to add a fifth element with a key that is the same 
        ' except for case; this would be allowed with the default
        ' comparer.
        Try
            openWith.Add("BMP", "paint.exe")
        Catch ex As ArgumentException
            Console.WriteLine(vbLf & "BMP is already in the dictionary.")
        End Try
        
        ' List the contents of the dictionary.
        Console.WriteLine()
        For Each kvp As KeyValuePair(Of String, String) In openWith
            Console.WriteLine("Key = {0}, Value = {1}", _
                kvp.Key, kvp.Value)
        Next kvp

    End Sub

End Class

' This code example produces the following output:
'
'BMP is already in the dictionary.
'
'Key = txt, Value = notepad.exe
'Key = bmp, Value = paint.exe
'Key = DIB, Value = paint.exe
'Key = rtf, Value = wordpad.exe

Commenti

Utilizzare questo costruttore con gli operatori di confronto tra maiuscole e minuscole stringa fornite dal StringComparer classe da creare dizionari con le chiavi di stringa tra maiuscole e minuscole.Use this constructor with the case-insensitive string comparers provided by the StringComparer class to create dictionaries with case-insensitive string keys.

Ogni chiave in un Dictionary<TKey,TValue> deve essere univoca in base all'operatore di confronto specificato.Every key in a Dictionary<TKey,TValue> must be unique according to the specified comparer.

Dictionary<TKey,TValue> richiede un'implementazione di uguaglianza per determinare se le chiavi sono uguali.Dictionary<TKey,TValue> requires an equality implementation to determine whether keys are equal. Se comparer viene null, questo costruttore utilizza l'operatore di confronto di uguaglianza predefinito, EqualityComparer<T>.Default.If comparer is null, this constructor uses the default generic equality comparer, EqualityComparer<T>.Default. Se tipo TKey implementa il System.IEquatable<T> interfaccia generica, operatore di uguaglianza predefinito Usa tale implementazione.If type TKey implements the System.IEquatable<T> generic interface, the default equality comparer uses that implementation.

Nota

Se è possibile stimare le dimensioni della raccolta, usando un costruttore che specifichi la capacità iniziale evita di dover eseguire alcune operazioni di ridimensionamento durante l'aggiunta di elementi di Dictionary<TKey,TValue>.If you can estimate the size of the collection, using a constructor that specifies the initial capacity eliminates the need to perform a number of resizing operations while adding elements to the Dictionary<TKey,TValue>.

Questo costruttore è un'operazione o (1).This constructor is an O(1) operation.

Vedi anche

Dictionary<TKey,TValue>(Int32) Dictionary<TKey,TValue>(Int32) Dictionary<TKey,TValue>(Int32) Dictionary<TKey,TValue>(Int32)

Inizializza una nuova istanza vuota della classe Dictionary<TKey,TValue>, con capacità iniziale specificata e che usa l'operatore di confronto di eguaglianza predefinito per il tipo di chiave.Initializes a new instance of the Dictionary<TKey,TValue> class that is empty, has the specified initial capacity, and uses the default equality comparer for the key type.

public:
 Dictionary(int capacity);
public Dictionary (int capacity);
new System.Collections.Generic.Dictionary<'Key, 'Value> : int -> System.Collections.Generic.Dictionary<'Key, 'Value>
Public Sub New (capacity As Integer)

Parametri

capacity
Int32 Int32 Int32 Int32

Numero iniziale degli elementi che Dictionary<TKey,TValue> può contenere.The initial number of elements that the Dictionary<TKey,TValue> can contain.

Eccezioni

Esempi

Esempio di codice seguente crea un dizionario con una capacità iniziale di 4 e lo popola con le voci di 4.The following code example creates a dictionary with an initial capacity of 4 and populates it with 4 entries.

using System;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        // Create a new dictionary of strings, with string keys and
        // an initial capacity of 4.
        Dictionary<string, string> openWith = 
                               new Dictionary<string, string>(4);
        
        // Add 4 elements to the dictionary. 
        openWith.Add("txt", "notepad.exe");
        openWith.Add("bmp", "paint.exe");
        openWith.Add("dib", "paint.exe");
        openWith.Add("rtf", "wordpad.exe");
        
        // List the contents of the dictionary.
        Console.WriteLine();
        foreach( KeyValuePair<string, string> kvp in openWith )
        {
            Console.WriteLine("Key = {0}, Value = {1}", 
               kvp.Key, kvp.Value);
        }
    }
}

/* This code example produces the following output:

Key = txt, Value = notepad.exe
Key = bmp, Value = paint.exe
Key = dib, Value = paint.exe
Key = rtf, Value = wordpad.exe
 */
Imports System
Imports System.Collections.Generic

Public Class Example
    
    Public Shared Sub Main() 

        ' Create a new dictionary of strings, with string keys and
        ' an initial capacity of 4.
        Dim openWith As New Dictionary(Of String, String)(4)
        
        ' Add 4 elements to the dictionary. 
        openWith.Add("txt", "notepad.exe")
        openWith.Add("bmp", "paint.exe")
        openWith.Add("dib", "paint.exe")
        openWith.Add("rtf", "wordpad.exe")
        
        ' List the contents of the dictionary.
        Console.WriteLine()
        For Each kvp As KeyValuePair(Of String, String) In openWith
            Console.WriteLine("Key = {0}, Value = {1}", _
                kvp.Key, kvp.Value)
        Next kvp

    End Sub

End Class

' This code example produces the following output:
'
'Key = txt, Value = notepad.exe
'Key = bmp, Value = paint.exe
'Key = dib, Value = paint.exe
'Key = rtf, Value = wordpad.exe

Commenti

Ogni chiave in un Dictionary<TKey,TValue> deve essere univoca in base all'operatore di uguaglianza predefinito.Every key in a Dictionary<TKey,TValue> must be unique according to the default equality comparer.

La capacità di un Dictionary<TKey,TValue> è il numero di elementi che possono essere aggiunti al Dictionary<TKey,TValue> prima che sia necessario un ridimensionamento.The capacity of a Dictionary<TKey,TValue> is the number of elements that can be added to the Dictionary<TKey,TValue> before resizing is necessary. Man mano che gli elementi vengono aggiunti a un Dictionary<TKey,TValue>, la capacità viene aumentata automaticamente come richiesto da la riallocazione della matrice interna.As elements are added to a Dictionary<TKey,TValue>, the capacity is automatically increased as required by reallocating the internal array.

Se le dimensioni della raccolta possono essere stimata, che specifica la capacità iniziale evita di dover eseguire alcune operazioni di ridimensionamento durante l'aggiunta di elementi di Dictionary<TKey,TValue>.If the size of the collection can be estimated, specifying the initial capacity eliminates the need to perform a number of resizing operations while adding elements to the Dictionary<TKey,TValue>.

Dictionary<TKey,TValue> richiede un'implementazione di uguaglianza per determinare se le chiavi sono uguali.Dictionary<TKey,TValue> requires an equality implementation to determine whether keys are equal. Questo costruttore utilizza l'operatore di confronto di uguaglianza predefinito, EqualityComparer<T>.Default.This constructor uses the default generic equality comparer, EqualityComparer<T>.Default. Se tipo TKey implementa il System.IEquatable<T> interfaccia generica, operatore di uguaglianza predefinito Usa tale implementazione.If type TKey implements the System.IEquatable<T> generic interface, the default equality comparer uses that implementation. In alternativa, è possibile specificare un'implementazione del IEqualityComparer<T> generico interfaccia usando un costruttore che accetta un comparer parametro.Alternatively, you can specify an implementation of the IEqualityComparer<T> generic interface by using a constructor that accepts a comparer parameter.

Questo costruttore è un'operazione o (1).This constructor is an O(1) operation.

Vedi anche

Dictionary<TKey,TValue>(IDictionary<TKey,TValue>, IEqualityComparer<TKey>) Dictionary<TKey,TValue>(IDictionary<TKey,TValue>, IEqualityComparer<TKey>) Dictionary<TKey,TValue>(IDictionary<TKey,TValue>, IEqualityComparer<TKey>) Dictionary<TKey,TValue>(IDictionary<TKey,TValue>, IEqualityComparer<TKey>)

Inizializza una nuova istanza della classe Dictionary<TKey,TValue> che contiene gli elementi copiati dall'interfaccia IDictionary<TKey,TValue> specificata e che usa l'interfaccia IEqualityComparer<T> indicata.Initializes a new instance of the Dictionary<TKey,TValue> class that contains elements copied from the specified IDictionary<TKey,TValue> and uses the specified IEqualityComparer<T>.

public:
 Dictionary(System::Collections::Generic::IDictionary<TKey, TValue> ^ dictionary, System::Collections::Generic::IEqualityComparer<TKey> ^ comparer);
public Dictionary (System.Collections.Generic.IDictionary<TKey,TValue> dictionary, System.Collections.Generic.IEqualityComparer<TKey> comparer);
new System.Collections.Generic.Dictionary<'Key, 'Value> : System.Collections.Generic.IDictionary<'Key, 'Value> * System.Collections.Generic.IEqualityComparer<'Key> -> System.Collections.Generic.Dictionary<'Key, 'Value>
Public Sub New (dictionary As IDictionary(Of TKey, TValue), comparer As IEqualityComparer(Of TKey))

Parametri

comparer
IEqualityComparer<TKey>

Implementazione di IEqualityComparer<T> da usare per confrontare le chiavi oppure null per usare l'oggetto EqualityComparer<T> predefinito per il tipo di chiave.The IEqualityComparer<T> implementation to use when comparing keys, or null to use the default EqualityComparer<T> for the type of the key.

Eccezioni

dictionary contiene una o più chiavi duplicate.dictionary contains one or more duplicate keys.

Esempi

Esempio di codice seguente viene illustrato come utilizzare il Dictionary<TKey,TValue>(IDictionary<TKey,TValue>, IEqualityComparer<TKey>) costruttore per inizializzare un Dictionary<TKey,TValue> con distinzione tra maiuscole e ordinato contenuto da un altro dizionario.The following code example shows how to use the Dictionary<TKey,TValue>(IDictionary<TKey,TValue>, IEqualityComparer<TKey>) constructor to initialize a Dictionary<TKey,TValue> with case-insensitive sorted content from another dictionary. L'esempio di codice crea un SortedDictionary<TKey,TValue> con un operatore di confronto tra maiuscole e minuscole e lo popola con i dati in ordine casuale, quindi passa le SortedDictionary<TKey,TValue> per il Dictionary<TKey,TValue>(IDictionary<TKey,TValue>, IEqualityComparer<TKey>) costruttore, insieme a un operatore di confronto, la creazione di un Dictionary<TKey,TValue> che viene ordinato.The code example creates a SortedDictionary<TKey,TValue> with a case-insensitive comparer and populates it with data in random order, then passes the SortedDictionary<TKey,TValue> to the Dictionary<TKey,TValue>(IDictionary<TKey,TValue>, IEqualityComparer<TKey>) constructor, along with a case-insensitive equality comparer, creating a Dictionary<TKey,TValue> that is sorted. Ciò è utile se si vuole compilare un dizionario ordinato che a un certo punto diventa statico. copiare i dati da un SortedDictionary<TKey,TValue> a un Dictionary<TKey,TValue> migliora la velocità di recupero.This is useful if you need to build a sorted dictionary that at some point becomes static; copying the data from a SortedDictionary<TKey,TValue> to a Dictionary<TKey,TValue> improves retrieval speed.

Nota

Quando si crea un nuovo dizionario con un operatore di confronto tra maiuscole e minuscole e popolarla con le voci da un dizionario che usa un operatore di confronto tra maiuscole e minuscole, come in questo esempio, si verifica un'eccezione se il dizionario di input non è chiavi che differiscono solo per i casi.When you create a new dictionary with a case-insensitive comparer and populate it with entries from a dictionary that uses a case-sensitive comparer, as in this example, an exception occurs if the input dictionary has keys that differ only by case.

using System;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        // Create a new sorted dictionary of strings, with string 
        // keys and a case-insensitive comparer.
        SortedDictionary<string, string> openWith = 
                new SortedDictionary<string, string>(
                    StringComparer.CurrentCultureIgnoreCase);
        
        // Add some elements to the dictionary. 
        openWith.Add("txt", "notepad.exe");
        openWith.Add("Bmp", "paint.exe");
        openWith.Add("DIB", "paint.exe");
        openWith.Add("rtf", "wordpad.exe");
        
        // Create a Dictionary of strings with string keys and a
        // case-insensitive equality comparer, and initialize it
        // with the contents of the sorted dictionary.
        Dictionary<string, string> copy = 
                new Dictionary<string, string>(openWith, 
                    StringComparer.CurrentCultureIgnoreCase);

        // List the contents of the copy.
        Console.WriteLine();
        foreach( KeyValuePair<string, string> kvp in copy )
        {
            Console.WriteLine("Key = {0}, Value = {1}", 
               kvp.Key, kvp.Value);
        }
    }
}

/* This code example produces the following output:

Key = Bmp, Value = paint.exe
Key = DIB, Value = paint.exe
Key = rtf, Value = wordpad.exe
Key = txt, Value = notepad.exe
 */
Imports System
Imports System.Collections.Generic

Public Class Example
    
    Public Shared Sub Main() 

        ' Create a new sorted dictionary of strings, with string 
        ' keys and a case-insensitive comparer.
        Dim openWith As New SortedDictionary(Of String, String)( _
            StringComparer.CurrentCultureIgnoreCase)
        
        ' Add some elements to the sorted dictionary. 
        openWith.Add("txt", "notepad.exe")
        openWith.Add("Bmp", "paint.exe")
        openWith.Add("DIB", "paint.exe")
        openWith.Add("rtf", "wordpad.exe")
        
        ' Create a Dictionary of strings with string keys and a 
        ' case-insensitive equality comparer, and initialize it
        ' with the contents of the sorted dictionary.
        Dim copy As New Dictionary(Of String, String)(openWith, _
            StringComparer.CurrentCultureIgnoreCase)

        ' List the contents of the copy.
        Console.WriteLine()
        For Each kvp As KeyValuePair(Of String, String) In copy
            Console.WriteLine("Key = {0}, Value = {1}", _
                kvp.Key, kvp.Value)
        Next kvp

    End Sub

End Class

' This code example produces the following output:
'
'Key = Bmp, Value = paint.exe
'Key = DIB, Value = paint.exe
'Key = rtf, Value = wordpad.exe
'Key = txt, Value = notepad.exe

Commenti

Utilizzare questo costruttore con gli operatori di confronto tra maiuscole e minuscole stringa fornite dal StringComparer classe da creare dizionari con le chiavi di stringa tra maiuscole e minuscole.Use this constructor with the case-insensitive string comparers provided by the StringComparer class to create dictionaries with case-insensitive string keys.

Ogni chiave in un Dictionary<TKey,TValue> deve essere univoca in base all'oggetto specificato operatore di confronto; in modo analogo, ogni chiave nell'origine dictionary devono inoltre essere univoci in base all'operatore di confronto specificato.Every key in a Dictionary<TKey,TValue> must be unique according to the specified comparer; likewise, every key in the source dictionary must also be unique according to the specified comparer.

Nota

Ad esempio, le chiavi duplicate possono verificarsi se comparer è uno degli operatori di confronto tra maiuscole e minuscole stringa fornite dal StringComparer classe e dictionary non usa una chiave di confronto.For example, duplicate keys can occur if comparer is one of the case-insensitive string comparers provided by the StringComparer class and dictionary does not use a case-insensitive comparer key.

La capacità iniziale della nuova Dictionary<TKey,TValue> sia abbastanza grande per contenere tutti gli elementi dictionary.The initial capacity of the new Dictionary<TKey,TValue> is large enough to contain all the elements in dictionary.

Dictionary<TKey,TValue> richiede un'implementazione di uguaglianza per determinare se le chiavi sono uguali.Dictionary<TKey,TValue> requires an equality implementation to determine whether keys are equal. Se comparer viene null, questo costruttore utilizza l'operatore di confronto di uguaglianza predefinito, EqualityComparer<T>.Default.If comparer is null, this constructor uses the default generic equality comparer, EqualityComparer<T>.Default. Se tipo TKey implementa il System.IEquatable<T> interfaccia generica, operatore di uguaglianza predefinito Usa tale implementazione.If type TKey implements the System.IEquatable<T> generic interface, the default equality comparer uses that implementation.

Questo costruttore è un'operazione O (n) operazione, in cui n è il numero di elementi in dictionary.This constructor is an O(n) operation, where n is the number of elements in dictionary.

Vedi anche

Dictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>, IEqualityComparer<TKey>) Dictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>, IEqualityComparer<TKey>) Dictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>, IEqualityComparer<TKey>) Dictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>, IEqualityComparer<TKey>)

public:
 Dictionary(System::Collections::Generic::IEnumerable<System::Collections::Generic::KeyValuePair<TKey, TValue>> ^ collection, System::Collections::Generic::IEqualityComparer<TKey> ^ comparer);
public Dictionary (System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>> collection, System.Collections.Generic.IEqualityComparer<TKey> comparer);
new System.Collections.Generic.Dictionary<'Key, 'Value> : seq<System.Collections.Generic.KeyValuePair<'Key, 'Value>> * System.Collections.Generic.IEqualityComparer<'Key> -> System.Collections.Generic.Dictionary<'Key, 'Value>
Public Sub New (collection As IEnumerable(Of KeyValuePair(Of TKey, TValue)), comparer As IEqualityComparer(Of TKey))

Parametri

collection
IEnumerable<KeyValuePair<TKey,TValue>>
comparer
IEqualityComparer<TKey>

Dictionary<TKey,TValue>(Int32, IEqualityComparer<TKey>) Dictionary<TKey,TValue>(Int32, IEqualityComparer<TKey>) Dictionary<TKey,TValue>(Int32, IEqualityComparer<TKey>) Dictionary<TKey,TValue>(Int32, IEqualityComparer<TKey>)

Inizializza una nuova istanza vuota della classe Dictionary<TKey,TValue>, con la capacità iniziale specificata e che usa l'interfaccia IEqualityComparer<T> specificata.Initializes a new instance of the Dictionary<TKey,TValue> class that is empty, has the specified initial capacity, and uses the specified IEqualityComparer<T>.

public:
 Dictionary(int capacity, System::Collections::Generic::IEqualityComparer<TKey> ^ comparer);
public Dictionary (int capacity, System.Collections.Generic.IEqualityComparer<TKey> comparer);
new System.Collections.Generic.Dictionary<'Key, 'Value> : int * System.Collections.Generic.IEqualityComparer<'Key> -> System.Collections.Generic.Dictionary<'Key, 'Value>
Public Sub New (capacity As Integer, comparer As IEqualityComparer(Of TKey))

Parametri

capacity
Int32 Int32 Int32 Int32

Numero iniziale degli elementi che Dictionary<TKey,TValue> può contenere.The initial number of elements that the Dictionary<TKey,TValue> can contain.

comparer
IEqualityComparer<TKey>

Implementazione di IEqualityComparer<T> da usare per confrontare le chiavi oppure null per usare l'oggetto EqualityComparer<T> predefinito per il tipo di chiave.The IEqualityComparer<T> implementation to use when comparing keys, or null to use the default EqualityComparer<T> for the type of the key.

Eccezioni

Esempi

L'esempio di codice seguente crea un Dictionary<TKey,TValue> con una capacità iniziale pari a 5 e un operatore di confronto di uguaglianza tra maiuscole e minuscole per le impostazioni cultura correnti.The following code example creates a Dictionary<TKey,TValue> with an initial capacity of 5 and a case-insensitive equality comparer for the current culture. L'esempio aggiunge quattro elementi, alcune con chiavi di lettere minuscole e altre con le chiavi di lettere maiuscole.The example adds four elements, some with lower-case keys and some with upper-case keys. Nell'esempio vengono quindi tenta di aggiungere un elemento con una chiave che si differenzia da una chiave esistente solo per i casi, intercetta l'eccezione risulta e visualizza un messaggio di errore.The example then attempts to add an element with a key that differs from an existing key only by case, catches the resulting exception, and displays an error message. Infine, l'esempio visualizza gli elementi nel dizionario.Finally, the example displays the elements in the dictionary.

using System;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        // Create a new dictionary of strings, with string keys, an
        // initial capacity of 5, and a case-insensitive equality 
        // comparer.
        Dictionary<string, string> openWith = 
                      new Dictionary<string, string>(5, 
                          StringComparer.CurrentCultureIgnoreCase);
        
        // Add 4 elements to the dictionary. 
        openWith.Add("txt", "notepad.exe");
        openWith.Add("bmp", "paint.exe");
        openWith.Add("DIB", "paint.exe");
        openWith.Add("rtf", "wordpad.exe");

        // Try to add a fifth element with a key that is the same 
        // except for case; this would be allowed with the default
        // comparer.
        try
        {
            openWith.Add("BMP", "paint.exe");
        }
        catch (ArgumentException)
        {
            Console.WriteLine("\nBMP is already in the dictionary.");
        }
        
        // List the contents of the dictionary.
        Console.WriteLine();
        foreach( KeyValuePair<string, string> kvp in openWith )
        {
            Console.WriteLine("Key = {0}, Value = {1}", kvp.Key, 
                kvp.Value);
        }
    }
}

/* This code example produces the following output:

BMP is already in the dictionary.

Key = txt, Value = notepad.exe
Key = bmp, Value = paint.exe
Key = DIB, Value = paint.exe
Key = rtf, Value = wordpad.exe
 */
Imports System
Imports System.Collections.Generic

Public Class Example
    
    Public Shared Sub Main() 

        ' Create a new Dictionary of strings, with string keys, an
        ' initial capacity of 5, and a case-insensitive equality
        ' comparer.
        Dim openWith As New Dictionary(Of String, String)(5, _
            StringComparer.CurrentCultureIgnoreCase)
        
        ' Add 4 elements to the dictionary. 
        openWith.Add("txt", "notepad.exe")
        openWith.Add("bmp", "paint.exe")
        openWith.Add("DIB", "paint.exe")
        openWith.Add("rtf", "wordpad.exe")

        ' Try to add a fifth element with a key that is the same 
        ' except for case; this would be allowed with the default
        ' comparer.
        Try
            openWith.Add("BMP", "paint.exe")
        Catch ex As ArgumentException
            Console.WriteLine(vbLf & "BMP is already in the dictionary.")
        End Try
        
        ' List the contents of the dictionary.
        Console.WriteLine()
        For Each kvp As KeyValuePair(Of String, String) In openWith
            Console.WriteLine("Key = {0}, Value = {1}", _
                kvp.Key, kvp.Value)
        Next kvp

    End Sub

End Class

' This code example produces the following output:
'
'BMP is already in the dictionary.
'
'Key = txt, Value = notepad.exe
'Key = bmp, Value = paint.exe
'Key = DIB, Value = paint.exe
'Key = rtf, Value = wordpad.exe

Commenti

Utilizzare questo costruttore con gli operatori di confronto tra maiuscole e minuscole stringa fornite dal StringComparer classe da creare dizionari con le chiavi di stringa tra maiuscole e minuscole.Use this constructor with the case-insensitive string comparers provided by the StringComparer class to create dictionaries with case-insensitive string keys.

Ogni chiave in un Dictionary<TKey,TValue> deve essere univoca in base all'operatore di confronto specificato.Every key in a Dictionary<TKey,TValue> must be unique according to the specified comparer.

La capacità di un Dictionary<TKey,TValue> è il numero di elementi che possono essere aggiunti al Dictionary<TKey,TValue> prima che sia necessario un ridimensionamento.The capacity of a Dictionary<TKey,TValue> is the number of elements that can be added to the Dictionary<TKey,TValue> before resizing is necessary. Man mano che gli elementi vengono aggiunti a un Dictionary<TKey,TValue>, la capacità viene aumentata automaticamente come richiesto da la riallocazione della matrice interna.As elements are added to a Dictionary<TKey,TValue>, the capacity is automatically increased as required by reallocating the internal array.

Se le dimensioni della raccolta possono essere stimata, che specifica la capacità iniziale evita di dover eseguire alcune operazioni di ridimensionamento durante l'aggiunta di elementi di Dictionary<TKey,TValue>.If the size of the collection can be estimated, specifying the initial capacity eliminates the need to perform a number of resizing operations while adding elements to the Dictionary<TKey,TValue>.

Dictionary<TKey,TValue> richiede un'implementazione di uguaglianza per determinare se le chiavi sono uguali.Dictionary<TKey,TValue> requires an equality implementation to determine whether keys are equal. Se comparer viene null, questo costruttore utilizza l'operatore di confronto di uguaglianza predefinito, EqualityComparer<T>.Default.If comparer is null, this constructor uses the default generic equality comparer, EqualityComparer<T>.Default. Se tipo TKey implementa il System.IEquatable<T> interfaccia generica, operatore di uguaglianza predefinito Usa tale implementazione.If type TKey implements the System.IEquatable<T> generic interface, the default equality comparer uses that implementation.

Questo costruttore è un'operazione o (1).This constructor is an O(1) operation.

Vedi anche

Dictionary<TKey,TValue>(SerializationInfo, StreamingContext) Dictionary<TKey,TValue>(SerializationInfo, StreamingContext) Dictionary<TKey,TValue>(SerializationInfo, StreamingContext) Dictionary<TKey,TValue>(SerializationInfo, StreamingContext)

Inizializza una nuova istanza della classe Dictionary<TKey,TValue> con dati serializzati.Initializes a new instance of the Dictionary<TKey,TValue> class with serialized data.

protected:
 Dictionary(System::Runtime::Serialization::SerializationInfo ^ info, System::Runtime::Serialization::StreamingContext context);
protected Dictionary (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
new System.Collections.Generic.Dictionary<'Key, 'Value> : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> System.Collections.Generic.Dictionary<'Key, 'Value>
Protected Sub New (info As SerializationInfo, context As StreamingContext)

Parametri

info
SerializationInfo SerializationInfo SerializationInfo SerializationInfo

Oggetto SerializationInfo contenente le informazioni necessarie per serializzare l'oggetto Dictionary<TKey,TValue>.A SerializationInfo object containing the information required to serialize the Dictionary<TKey,TValue>.

context
StreamingContext StreamingContext StreamingContext StreamingContext

Struttura StreamingContext contenente l'origine e la destinazione del flusso serializzato associato alla classe Dictionary<TKey,TValue>.A StreamingContext structure containing the source and destination of the serialized stream associated with the Dictionary<TKey,TValue>.

Commenti

Questo costruttore viene chiamato durante la deserializzazione per ricostituire l'oggetto trasmesso in un flusso.This constructor is called during deserialization to reconstitute an object transmitted over a stream. Per altre informazioni, vedere serializzazione SOAP e XML.For more information, see XML and SOAP Serialization.

Vedi anche

Si applica a