Выбор ответа Junior Коллекции и LINQ обновлено
First, Single и их OrDefault
Вопрос
Что сделает Single(x => x.Id == 5), если в коллекции два элемента с Id == 5?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Бросит InvalidOperationException. Single проверяет, что подходящий элемент ровно один, и бросает InvalidOperationException, если их ноль или больше одного.
Варианты ответа
- Вернёт первый найденный элемент
- Бросит
InvalidOperationExceptionправильный ответ - Вернёт
null, так как ответ неоднозначен - Вернёт последний найденный элемент
Разбор
Single проверяет, что подходящий элемент ровно один, и бросает InvalidOperationException, если их ноль или больше одного. SingleOrDefault вернёт default при отсутствии, но тоже бросит при двух и более. Первый элемент без проверки уникальности возвращает First, последний Last. Single дороже: ему приходится просмотреть всю последовательность.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.