Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
1241 of 1492 menu
◀ ▶

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

Смотрите также

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить