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 =
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
Комментарии
Можно также использовать 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.