Como trabajar con LinQ C # Lambda Expression


Si está utilizando LinQ como ORM y haciendo que su personal termine de forma orientada a objetos simples, ¡eso es bueno! ¿Has visto algún código mágico de un trazador de líneas que no parece muy familiar para nuestro código C # habitual? Esas son expresiones lambda, una forma genial de hacer las cosas de una manera simple y fácil. En el tutorial de hoy discutiremos sobre la comprensión básica de la expresión lambda C #, que juega un papel muy importante en .NET LinQ , una tecnología muy fácil, eficiente y efectiva para manejar datos.

¿Qué son expresiones Lambda?


(Input Parameters) => Method Expression

No te enojes con solo echar un vistazo a la declaración de expresión de lambda, no es un idioma extraño. ¡Es simplemente una función (o delegado)! Bueno, podemos llamarlo función anónima . Es una función sin nombre. Pero tiene un parámetro y un valor de retorno, pero son dinámicos, lo que significa que podemos poner cualquier cosa por ellos, está sobre nosotros. ¡Guauu! Que flexible Sí lo es.

Sin embargo, tendrás que recordar una cosa, tan pronto como la usemos en el código, donde sea que esté, su alcance termina allí mismo, no hay forma de reutilizarlo más, ¡ya que hay un nombre asignado a él! Por lo tanto, en su mayoría, utilizaremos esto en algunas tareas que necesitarán algunos cálculos y queremos escribir de manera fácil y eficiente, pero no es necesario volver a utilizarlo a menudo. Si es necesario, debe asignarse a un delegado o tipo 'Func'.


Uso general de C # Lambda Expression:

En general, la expresión lambda es útil al usar la consulta LinQ en su aplicación y aplicarla en una lista de datos, ya sea desde la base de datos, desde XML o dinámico. En otras palabras, lo usamos habitualmente para filtrar algunos datos específicos de una lista de datos que cumple con los criterios y usarlos en una operación LinQ. La expresión lambda se puede usar en un amplio rango de área como linq a sql, linq a xml, linq a entidad (marco de entidad), datos de matriz / lista, etc.

Un ejemplo simple:

Por favor, eche un vistazo a la siguiente expresión:

x => x >10

Este es un ejemplo muy simple de cómo puede ser una expresión lambda. La primera parte, antes del símbolo '=>', se considera como el parámetro de entrada. No necesita ser definido previamente, es dinámico. Decide el tipo de forma inteligente, incluso en tiempo de compilación, cuando lo está escribiendo, en función de la operación que se realiza en él.

Como dijimos, queremos filtrar algunos datos específicos de una lista de datos, este parámetro de entrada representa el tipo de cada elemento de la lista. Digamos, estamos tratando con una lista de datos enteros, entonces x es un número entero. Si estamos tratando con una lista de objetos 'A', entonces x también será del tipo 'A' y obtendrás soporte completo del estudio visual inteligente para ello.

Entonces veamos la declaración completa de la expresión anterior:

int[] somevalues = { 10, 20, 5, 2, 40, 1 };
int numberOfExpectedValues = somevalues.Count(x => x >10);

Como puede ver, la expresión lambda es un valor de retorno que se está aplicando en el método 'Cuenta' de la matriz de enteros de 'algunos valores'. Entonces, mencioné, ahora x será tratado como un número entero. Y la expresión devolverá un valor verdadero / falso al probar cada elemento de la matriz 'some values' y se usará como método delegado de recuento. finalmente, en la variable 'numberOfExpectedValues', recibiremos cuántos datos cumplen los criterios de ser mayores que 10.

Otro ejemplo de pseudo código:

¿Cómo podemos usarlo en una lista de objetos y qué tan útil sería? Veamos un pseudo código en c # (tienes que escribir algunos códigos más para hacerlo compilar):

List myUsers = New List();
//llene la lista myUsers con algún objeto User
List activeUsers = myUsers.Where(u => u.Active == True);
//la lista de Usuarios activos contendrá solo usuarios activos filtrados de la lista de todos los usuarios



Entonces, sin usar ninguna consulta SQL fea o pocas líneas de códigos para que una función lo haga manualmente, estamos teniendo esto en una sola línea de código práctico. ¿No es asombroso?

Espero que lo disfruten, compartan y comenten. ;)

"Si se puede imaginar... se puede programar."
Leer más...
Google