TryAdd
TryAdd у
ConcurrentDictionary
возвращает false при повторном ключе.
Коллекция безопасна для нескольких потоков;
примеры - в одном потоке для ясного вывода.
Синтаксис
bool added = map.TryAdd(key, value);
Пример
Давайте добавить "abcde" первый раз:
using System;
using System.Collections.Concurrent;
class Program
{
static void Main()
{
ConcurrentDictionary<string, int> map =
new ConcurrentDictionary<string, int>();
bool res = map.TryAdd("abcde", 1);
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Пример
Давайте повторить TryAdd с тем же ключом:
using System;
using System.Collections.Concurrent;
class Program
{
static void Main()
{
ConcurrentDictionary<string, int> map =
new ConcurrentDictionary<string, int>();
map.TryAdd("abcde", 1);
bool res = map.TryAdd("abcde", 2);
Console.WriteLine(res);
}
}
Результат выполнения кода:
False
Пример
Давайте проверить, что значение осталось 1:
using System;
using System.Collections.Concurrent;
class Program
{
static void Main()
{
ConcurrentDictionary<string, int> map =
new ConcurrentDictionary<string, int>();
map.TryAdd("abcde", 1);
map.TryAdd("abcde", 2);
int res = map["abcde"];
Console.WriteLine(res);
}
}
Результат выполнения кода:
1
Смотрите также
-
TryUpdate,
сменить при совпадении -
GetOrAdd,
взять или добавить -
индексатор,
запись и чтение -
ConcurrentDictionary,
класс словаря