Junior
116
questionbank
Как получить значение по ключу в словаре в C#?
Ответ от нейросети
sobes.tech AI
Можно использовать индексатор с ключом или метод TryGetValue.
-
Индексатор (
[key]):- Возвращает значение по указанному ключу.
- Выбрасывает
KeyNotFoundException, если ключ отсутствует.
// Пример использования индексатора Dictionary<string, int> ages = new Dictionary<string, int>(); ages["Alice"] = 30; int aliceAge = ages["Alice"]; // Получаем значение // ages["Bob"]; // Выбросит KeyNotFoundException, если ключа "Bob" нет -
Метод
TryGetValue(key, out value):- Пытается найти значение по указанному ключу.
- Возвращает
true, если ключ найден, и присваивает значение переменнойvalue. - Возвращает
false, если ключ не найден, иvalueбудет иметь значение по умолчанию для типа данных. - Более безопасен при работе с потенциально отсутствующими ключами.
// Пример использования TryGetValue Dictionary<string, int> ages = new Dictionary<string, int>(); ages["Alice"] = 30; int aliceAge; if (ages.TryGetValue("Alice", out aliceAge)) { // Ключ "Alice" найден, aliceAge содержит значение 30 // ... используем aliceAge } int bobAge; if (ages.TryGetValue("Bob", out bobAge)) { // Этот блок не выполнится, так как ключа "Bob" нет } else { // Ключ "Bob" не найден, bobAge будет 0 (значение по умолчанию для int) }
Также можно использовать метод GetValueOrDefault(key) (в .NET Core 2.1+ и .NET Standard 2.1+), который возвращает значение по указанному ключу или значение по умолчанию, если ключ не найден.
// Пример использования GetValueOrDefault
Dictionary<string, int> ages = new Dictionary<string, int>();
ages["Alice"] = 30;
int aliceAge = ages.GetValueOrDefault("Alice"); // 30
int bobAge = ages.GetValueOrDefault("Bob"); // 0 (значение по умолчанию)