Ответ 1
Нет, потому что они скомпилированы в точно такой же код.
В основном выражения запроса "предварительно обработаны" компилятором в "С# 3 без выражений запроса", а затем правила перегрузки, преобразования лямбда-выражения и т.д. применяются как обычно. Это действительно элегантная система, которая означает, что правила для выражений запросов ограничены только одним небольшим количеством спецификации.
Конечно, есть разные вещи, которые вы можете написать в синтаксисе "цепной метод", который не может быть написан в синтаксисе выражений запроса, либо из-за использования других перегрузок, либо методов, которые просто не поддерживаются (например, Count()
) - но если вы их не используете, скомпилированный код будет точно таким же. Выберите наиболее читаемую альтернативу для любого конкретного сценария.