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

KeyNotFoundException

KeyNotFoundException бросает индексатор Dictionary<TKey, TValue>, если ключ не найден. Метод TryGetValue вместо исключения возвращает false - см. TryGetValue. Перехват оформляют через catch.

Синтаксис

var map = new Dictionary<string, int>(); int val = map["abcde"];

Пример

Давайте запросим отсутствующий ключ и поймаем исключение:

using System; using System.Collections.Generic; class Program { static void Main() { try { var map = new Dictionary<string, int>(); map["a"] = 1; int res = map["abcde"]; } catch (KeyNotFoundException) { Console.WriteLine("fail"); } } }

Результат выполнения кода:

"fail"

Пример

Давайте прочитаем существующий ключ без ошибки:

using System; using System.Collections.Generic; class Program { static void Main() { var map = new Dictionary<string, int>(); map["abcde"] = 5; try { Console.WriteLine(map["abcde"]); } catch (KeyNotFoundException) { Console.WriteLine("fail"); } } }

Результат выполнения кода:

5

Пример

Давайте проверим ключ через ContainsKey перед чтением:

using System; using System.Collections.Generic; class Program { static void Main() { var map = new Dictionary<string, int>(); string key = "abcde"; if (map.ContainsKey(key)) { Console.WriteLine(map[key]); } else { Console.WriteLine("missing"); } } }

Результат выполнения кода:

"missing"

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

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