Las expresiones lambda se utilizan en consultas de LINQ basadas en métodos.
Lambdas de expresión
Tiene la siguiente forma básica:(Parámetros de entrada) => expresión
Los paréntesis sólo son opcionales si la lambda tiene un parámetro de entrada; de lo contrario, son obligatorios. Dos o más parámetros de entrada se separan por comas y se encierran entre paréntesis:
(x, y) => x == y
Lambdas de instrucciones
Una lambda de instrucciones es similar a un lambda de expresión, salvo que las instrucciones se encierran entre llaves:(Parámetros de entrada) => {Declaraciones;}
Deducción de tipos en las expresiones lambda
Al escribir expresiones lambda, no tiene por qué especificar un tipo para los parámetros de entrada, ya que el compilador puede deducir el tipo según el cuerpo de la lambda, el tipo de delegado subyacente y otros factores que se describen en la especificación del lenguaje C# 3.0. Para la mayoría de los operadores de consulta estándar, la primera entrada es el tipo de los elementos en la secuencia de origen. Así, si está realizando una consulta sobre un IEnumerable<Customer>, se deducirá que la variable de entrada será un objeto Customer, lo cual significa que se podrá tener acceso a sus métodos y propiedades:customers.Where(c => c.City == "London");
Ejemplo:
En este código el método DELETE del repositorio, recibe como parámetro el identificador de una entidad; usando LINQ realiza la consulta para obtener todas las respuestas de un examen que estén relacionadas al identificador. Si la consulta regresa resultados, convertimos el Enumerable a LIST y después al método FOREACH del LIST le enviamos como parámetro una instrucción, misma que se ejecutara sobre cada elemento del LIST resultante. Observen el parámetro “x”.
Suerte.
No hay comentarios:
Publicar un comentario