-4
Я пытаюсь найти элемент по имени элемента.InvalidOperationException, когда первый не найден
Item item = Shop.Items.Values.First(i => i.Name.Contains(partOfName))
я ожидал, что делать дальше
if (item == null) // if not found
{
// not found code
}
... но когда элемент не найден, я получил InvalidOperationException
.
Первое, что приходит на ум
try
{
Item item = Shop.Items.Values.First(i => i.Name.Contains(partOfName))
}
catch(InvalidOperationException ex)
{
// not found code
}
Что такое лучший способ справиться с этим? Может, не попробовать/поймать?
EDIT. Решение:
Item item = Shop.Items.Values.FirstOrDefault(i => i.Name.Contains(partOfName))
if (item == null) // if not found
{
// not found code
}
Первый способ очень прост в создании, поэтому создайте его самостоятельно – thijmen321
Вы можете использовать 'FirstOrDefault'. –
Из документации «Enumerable.First»: «Метод« Первый »генерирует исключение, если в источнике не найден соответствующий элемент. Вместо этого, чтобы вернуть значение по умолчанию, когда не найдено ни одного совпадающего элемента, используйте метод FirstOrDefault. " –