Sintaxis de métodos de extensión vs sintaxis de consulta

Estoy tratando de controlar si hay un buen momento para usar palabras clave estándar de linq o métodos de extensión de linq con expresiones lambda. Parecen hacer lo mismo, solo están escritos de manera diferente. ¿Es puramente una cuestión de estilo?

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);

Son muy similares con el segundo ejemplo siendo un poco más conciso, pero tal vez menos expresivo si no sabes lo que está haciendo el =>.

Además de escribir código conciso, ¿existen otras ventajas al usar los métodos de extensión en lugar de la sintaxis LINQ?

Respuestas a la pregunta(7)

Su respuesta a la pregunta