Метод TryGetValue
Метод TryGetValue класса
Dictionary<TKey, TValue>
ищет ключ и через параметр out
возвращает значение. Возвращает true,
если ключ найден, иначе false и
значение по умолчанию.
Синтаксис
bool found = map.TryGetValue(key, out TValue value);
Пример
Давайте прочитать существующий ключ:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
Dictionary<int, string> map = new Dictionary<int, string>
{
{1, "a"},
{2, "b"}
};
if (map.TryGetValue(2, out string val))
{
Console.WriteLine(val);
}
}
}
Результат выполнения кода:
"b"
Пример
Давайте запросить отсутствующий ключ:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
Dictionary<int, string> map = new Dictionary<int, string> { {1, "a"} };
Console.WriteLine(map.TryGetValue(9, out string val));
}
}
Результат выполнения кода:
False
Пример
Давайте сравнить два вызова для одного ключа:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
Dictionary<int, string> map = new Dictionary<int, string> {{3, "c"}};
bool a = map.TryGetValue(3, out string v1);
bool b = map.TryGetValue(3, out string v2);
Console.WriteLine(a == b);
}
}
Результат выполнения кода:
True
Смотрите также
-
индексатор
Dictionary,
который бросает при отсутствии ключа -
метод
ContainsKey,
который только проверяет ключ -
метод
TryGetValue,
который читает из замороженной таблицы -
метод
TryAdd,
который добавляет пару безопасно