Dictionary<TKey,TValue>.Add(TKey, TValue) Метод

Определение

Добавляет указанные ключ и значение в словарь.

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)

Параметры

key
TKey

Ключ добавляемого элемента.

value
TValue

Добавляемое значение элемента. Для ссылочных типов допускается значение null.

Реализации

Исключения

key имеет значение null.

Элемент с таким ключом уже существует в Dictionary<TKey,TValue>.

Примеры

В следующем примере кода создается пустая Dictionary<TKey,TValue> строка со строковыми ключами и используется Add метод для добавления некоторых элементов. В этом примере показано, что Add метод создает исключение ArgumentException при попытке добавить повторяющийся ключ.

Этот пример кода является частью более крупного примера, предоставленного Dictionary<TKey,TValue> для класса.

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

Комментарии

Можно также использовать Item[] свойство для добавления новых элементов, задав значение ключа, который не существует в Dictionary<TKey,TValue>; например, myCollection[myKey] = myValue (в Visual Basic, myCollection(myKey) = myValue). Однако если указанный ключ уже существует в объекте Dictionary<TKey,TValue>, при задании Item[] свойства перезаписывается старое значение. Напротив, метод создает исключение, Add если значение с указанным ключом уже существует.

Count Если значение свойства уже равно емкости, емкость Dictionary<TKey,TValue> увеличивается путем автоматического перераспределения внутреннего массива, а существующие элементы копируются в новый массив до добавления нового элемента.

Ключ не может быть, но значение может быть null, если TValue является ссылочным типом.

Если Count емкость меньше, этот метод приближается к операции O(1). Если емкость должна быть увеличена для размещения нового элемента, этот метод становится операцией O(n), где n находится Count.

Применяется к

См. также раздел