No, no es necesario en absoluto.
Tenemos dos formas de escribir consultas LINQ.
Uno es un método de consulta y otro es el método de generador. Solo necesitas poner la expresión lambda en el caso del método de construcción. Por ejemplo, si queremos encontrar todos los estudiantes de un objeto Los estudiantes que tienen más de 70 marcas pero podemos hacer esto en LINQ con el siguiente sintaxis
var data = from p in stdList
where p.marks > 70
select p;
o var data = stdList.Where (p => p.marks> 70);
método posterior es el método de compilación, en la función Donde, estamos pasando expresiones lambda.
Las expresiones Lambda son solo atajos de hacer cosas, siempre puedes usar consultas LINQ, pero si quieres evitar la sintaxis entera para simplemente aplicar una condición simple puedes usar los métodos LINQ Builder (que piden expresiones lambda) en lambda expresiones, siempre define algunos alias y luego realiza su operación.
En cuanto al operador =>, funciona igual que el operador de asignación. Por ejemplo:
(p) => p.Gender == “F”
It means “All persons p, such that person’s Gender is F”
En alguna literatura esto se llama “predicado”. Otra terminología literatura es “proyección”
(p) => p.Gender ? “F” : “Female”
“Each person p becomes string “Female” if Gender is “F””
Esto se proyección, que utiliza operador ternario. Aunque expliqué con ejemplos muy básicos, espero que esto te ayude. . . :)
Tenga en cuenta que las expresiones lambda también se pueden convertir en árboles de expresiones. –