TryRemove
TryRemove у
ConcurrentDictionary
для отсутствующего ключа возвращает false.
Перегрузка с out отдаёт удалённое значение.
Тип рассчитан на несколько потоков; примеры -
в одном потоке.
Синтаксис
bool removed = map.TryRemove(key, out TValue value);
Пример
Давайте удалить отсутствующий ключ:
using System;
using System.Collections.Concurrent;
class Program
{
static void Main()
{
ConcurrentDictionary<string, int> map =
new ConcurrentDictionary<string, int>();
bool res = map.TryRemove("abcde", out _);
Console.WriteLine(res);
}
}
Результат выполнения кода:
False
Пример
Давайте удалить существующую пару:
using System;
using System.Collections.Concurrent;
class Program
{
static void Main()
{
ConcurrentDictionary<string, int> map =
new ConcurrentDictionary<string, int>();
map.TryAdd("abcde", 1);
bool ok = map.TryRemove("abcde", out int value);
Console.WriteLine(ok);
Console.WriteLine(value);
}
}
Результат выполнения кода:
True
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.TryRemove("abcde", out _);
bool res = map.TryRemove("abcde", out _);
Console.WriteLine(res);
}
}
Результат выполнения кода:
False
Смотрите также
-
TryAdd,
добавление пары -
TryUpdate,
замена значения -
индексатор,
доступ по ключу -
ConcurrentDictionary,
класс словаря