Он вернет пустой перечислимый. Это не будет нулевым. Вы можете спать спокойно :)
.ToList возвращает пустой список. (то же, что и new List ());
В Linq-to-SQL, если вы попытаетесь получить первый элемент запроса без результатов, вы получите ошибку , не содержащую элементов
. Могу вас заверить, что упомянутая ошибка не равна объектной ссылке, не установленной на экземпляр объекта
.
в заключение нет, он не вернет null, поскольку null не может сказать, что последовательность не содержит элементов
, он всегда будет говорить, что ссылка на объект не установлена на экземпляр объекта
;)
Другие сообщения здесь проясняют, что результатом является "пустой" IQueryable, который ToList () правильно изменит на пустой список и т. Д.
Будьте осторожны с некоторыми из операторы, поскольку они будут выбрасывать, если вы отправите им пустой перечислимый. Это может произойти, если вы соедините их вместе.
var lst = new List<int>() { 1, 2, 3 };
var ans = lst.Where( i => i > 3 );
(ans == null).Dump(); // False
(ans.Count() == 0 ).Dump(); // True
(Дамп взят из LinqPad )