Разница между Single() и SingleOrDefault() при работе с коллекциями заключается в поведении в случае пустой последовательности: 3
Таким образом, Single() используется, когда нужно быть уверенным, что последовательность должна содержать именно один элемент. 3 Если последовательность не соответствует этому ожиданию, генерируется исключение. 3 SingleOrDefault() применяется, когда нужно корректно обрабатывать пустые последовательности, возвращая значение по умолчанию вместо исключения. 3