Поделиться через


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.

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

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