Dictionary<TKey,TValue>.Add(TKey, TValue) Yöntem

Tanım

Belirtilen anahtarı ve değeri sözlüğe ekler.

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)

Parametreler

key
TKey

Eklenecek öğenin anahtarı.

value
TValue

Eklenecek öğenin değeri. Değer başvuru türleri için olabilir null .

Uygulamalar

Özel durumlar

key, null değeridir.

içinde aynı anahtara sahip bir öğe zaten var Dictionary<TKey,TValue>.

Örnekler

Aşağıdaki kod örneği, dize anahtarlarıyla boş Dictionary<TKey,TValue> bir dize oluşturur ve bazı öğeleri eklemek için yöntemini kullanır Add . Örnek, yinelenen bir anahtar eklemeye çalışırken yönteminin bir ArgumentException oluşturduğunu Add gösterir.

Bu kod örneği, sınıfı için Dictionary<TKey,TValue> sağlanan daha büyük bir örneğin parçasıdır.

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

Açıklamalar

Özelliğini, içinde bulunmayan Dictionary<TKey,TValue>bir anahtarın değerini ayarlayarak yeni öğeler eklemek için de kullanabilirsinizItem[]; örneğin, myCollection[myKey] = myValue (Visual Basic'te). myCollection(myKey) = myValue Ancak, belirtilen anahtar içinde Dictionary<TKey,TValue>zaten varsa, özelliğini ayarlamak Item[] eski değerin üzerine yazar. Buna karşılık, belirtilen anahtara Add sahip bir değer zaten varsa yöntemi bir özel durum oluşturur.

Özellik değeri kapasiteye Count zaten eşitse, iç dizi otomatik olarak yeniden taşınarak öğesinin Dictionary<TKey,TValue> kapasitesi artırılır ve yeni öğe eklenmeden önce mevcut öğeler yeni diziye kopyalanır.

Anahtar olamaz null, ancak başvuru türü ise TValue bir değer olabilir.

Kapasiteden küçükse Count , bu yöntem bir O(1) işlemine yaklaşır. Kapasitenin yeni öğeye uyum sağlaması için artırılması gerekiyorsa, bu yöntem bir O(n) işlemine dönüşür ve burada n olur Count.

Şunlara uygulanır

Ayrıca bkz.