Синтаксис методов расширения против синтаксиса запросов
Я пытаюсь понять, есть ли время использовать стандартные ключевые слова linq или методы расширения linq с лямбда-выражениями. Кажется, они делают одно и то же, просто пишутся по-разному. Это чисто вопрос стиля?
var query = from p in Products
where p.Name.Contains("foo")
orderby c.Name
select p;
// or with extension methods:
var query = Products
.Where(p => p.Name.Contains("foo"))
.OrderBy(p => p.Name);
Они очень похожи, второй пример немного более краткий, но, возможно, менее выразительный, если вы не знаете, что делает =>.
Кроме написания краткого кода, есть ли другие преимущества использования методов расширения по сравнению с синтаксисом LINQ?