С#: Что возвращает индексный словарь словаря [string]?
Что возвращает [string] indexer Dictionary, когда ключ не существует в словаре? Я новичок в С#, и я не могу найти ссылку так же хорошо, как Javadocs.
Получить null или получить исключение?
Ответ 1
Если вы имеете в виду индексатор a Dictionary<string,SomeType>, вы должны увидеть исключение (KeyNotFoundException). Если вы не хотите, чтобы это было ошибкой:
SomeType value;
if(dict.TryGetValue(key, out value)) {
// key existed; value is set
} else {
// key not found; value is default(SomeType)
}
Чтобы попытаться получить ключевое значение, если вы не знаете, существует ли оно, используйте TryGetValue.
Ответ 3
Я думаю, вы можете попробовать
dict.ContainsKey(someKey)
чтобы проверить, содержит ли Словарь ключ или нет.
Спасибо
Ответ 4
В качестве альтернативы использованию TryGetValue вы можете сначала проверить, существует ли ключ с помощью dict.ContainsKey(key), тем самым устраняя необходимость объявлять значение до выяснения, действительно ли оно вам понадобится.