Condividi tramite


Dictionary<TKey,TValue>.Add(TKey, TValue) Metodo

Definizione

Aggiunge la chiave e il valore specificati al dizionario.

public:
 virtual void Add(TKey key, TValue value);
public void Add (TKey key, TValue value);
abstract member Add : 'Key * 'Value -> unit
override this.Add : 'Key * 'Value -> unit
Public Sub Add (key As TKey, value As TValue)

Parametri

key
TKey

Chiave dell'elemento da aggiungere.

value
TValue

Valore dell'elemento da aggiungere. Il valore può essere null per i tipi di riferimento.

Implementazioni

Eccezioni

key è null.

In Dictionary<TKey,TValue> è già presente un elemento con la stessa chiave.

Esempio

Nell'esempio di codice seguente viene creato un vuoto Dictionary<TKey,TValue> di stringhe con chiavi stringa e viene usato il Add metodo per aggiungere alcuni elementi. Nell'esempio viene illustrato che il Add metodo genera un'eccezione ArgumentException quando si tenta di aggiungere una chiave duplicata.

Questo esempio di codice fa parte di un esempio più ampio fornito per la Dictionary<TKey,TValue> classe .

// 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

È anche possibile utilizzare la Item[] proprietà per aggiungere nuovi elementi impostando il valore di una chiave che non esiste in Dictionary<TKey,TValue>; ad esempio, myCollection[myKey] = myValue in Visual Basic, myCollection(myKey) = myValue. Tuttavia, se la chiave specificata esiste già in , l'impostazione Dictionary<TKey,TValue>della Item[] proprietà sovrascrive il valore precedente. Al contrario, il Add metodo genera un'eccezione se esiste già un valore con la chiave specificata.

Se il Count valore della proprietà è già uguale alla capacità, la capacità di Dictionary<TKey,TValue> viene aumentata riallocazione automatica della matrice interna e gli elementi esistenti vengono copiati nella nuova matrice prima dell'aggiunta del nuovo elemento.

Una chiave non può essere null, ma un valore può essere, se TValue è un tipo riferimento.

Se Count è minore della capacità, questo metodo si avvicina a un'operazione O(1). Se la capacità deve essere aumentata per contenere il nuovo elemento, questo metodo diventa un'operazione O(n), dove n è Count.

Si applica a

Vedi anche