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

Definitie

Voegt de opgegeven sleutel en waarde toe aan de woordenlijst.

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)

Parameters

key
TKey

De sleutel van het element dat moet worden toegevoegd.

value
TValue

De waarde van het element dat moet worden toegevoegd. De waarde kan voor referentietypen zijn null .

Implementeringen

Uitzonderingen

key is null.

Er bestaat al een element met dezelfde sleutel in de Dictionary<TKey,TValue>.

Voorbeelden

In het volgende codevoorbeeld wordt een lege Dictionary<TKey,TValue> tekenreeks met tekenreekssleutels gemaakt en wordt de Add methode gebruikt om enkele elementen toe te voegen. In het voorbeeld ziet u dat de Add methode een ArgumentException dubbele sleutel genereert bij het toevoegen van een dubbele sleutel.

Dit codevoorbeeld maakt deel uit van een groter voorbeeld voor de Dictionary<TKey,TValue> klasse.

// 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.
let openWith = 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")
with :? ArgumentException ->
    printfn "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

Opmerkingen

U kunt ook de eigenschap Item[] gebruiken om nieuwe elementen toe te voegen door de waarde in te stellen van een sleutel die niet bestaat in de Dictionary<TKey,TValue>; bijvoorbeeld myCollection[myKey] = myValue (in Visual Basic myCollection(myKey) = myValue). Als de opgegeven sleutel echter al bestaat in de Dictionary<TKey,TValue>eigenschap, wordt de oude waarde overschreven door de Item[] eigenschap in te stellen. De methode genereert daarentegen Add een uitzondering als er al een waarde met de opgegeven sleutel bestaat.

Als de Count eigenschapswaarde al gelijk is aan de capaciteit, wordt de capaciteit van de Dictionary<TKey,TValue> eigenschap verhoogd door de interne matrix automatisch opnieuw te verplaatsen en worden de bestaande elementen gekopieerd naar de nieuwe matrix voordat het nieuwe element wordt toegevoegd.

Een sleutel kan niet zijn null, maar een waarde kan zijn, als TValue het een verwijzingstype is.

Als Count deze methode kleiner is dan de capaciteit, wordt een O(1)-bewerking benaderd. Als de capaciteit moet worden verhoogd om het nieuwe element aan te kunnen, wordt deze methode een O(n-bewerking, waar n dat is Count.

Van toepassing op

Zie ook