Ir al contenido principal

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."

Comentarios

Entradas populares de este blog

Formatos con String.Format en C#

Todas las aplicaciones que desarrollamos en algún momento necesitan formatear algún tipo de datos, y no se a ustedes pero a mi siempre se me olvidan los formatos y como obtener los resultados de una u otra forma, es por eso que decidí hacer este post, y recopilar la mayor cantidad de formatos posibles, para buscarlos cuando necesite y ustedes puedan copiarlos ;=). Para formatear cadenas existe una clase especializada en el manejo de cadenas, esta clase se llama String, su nombre completo es System.String, ya que se encuentra en el namespace System. En esta clase vamos a encontrar una función llamada Format que se encargará de reemplazar el valor de un dato (entero, real, una cadena, un carácter, hasta de un objeto), por el formato que se especifique en el parámetro. En forma general, y aunque tiene varias sobrecargas, String.Format tiene la siguiente sintaxis: Formatos para números:   Tipo ...

Subir archivos al servidor

 Muchas veces necesitamos que nuestros usuarios puedan subir archivos al servidor  ya sean imágenes,pdf, rar,zip,etc, y es común que quieran encontrar métodos fáciles y agiles para realizar esto. Es por eso que hoy les traigo un post donde les enseñare a crear una aplicación en ASP.NEET Y C# para que puedan subir archivos a una carpeta del servidor. Es muy simple, pero vaya que nos es útil, y más cuando es para satisfacer las necesidades de nuestro cliente. Sin hablar más aquí vamos: Lo primero que haremos es crear una aplicación en Visual Studio - ASP.NET y escogeremos como lenguaje C#, luego agregaremos una nueva WebPage y agregaremos los siguientes controles: FileUpload – Label - Boton Le cambiaremos los id de los controles  y les pondremos nombres descriptivos por aquello de las Buenas practicas de programación. La propiedad Text del botón le pondremos “Enviar”. Crearemos una carpeta en el server que se llame “Archivos” para esto daremos Click derecho en el e...

Hora Militar o Formato 24 Horas en SQL SERVER

Es curioso los problemas que nos encontramos a diario al desarrollar, siempre resulta que hay algo nuevo y algo que no sabemos, aprendemos día a día con cada cosa que hacemos, y cada código que escribimos. El día de hoy les traigo una instrucción que si bien es muy sencilla, puede ahorrarnos varias horas de búsqueda infructuosa en san google. Se trata de convertir una hora en sql server al formato militar o formato de 24 horas. Para esto tenemos varias formas: SELECT CONVERT(VARCHAR(8), dateadd(HOUR,12, cast('2017-01-01 10:15:00' as datetime)), 108) AS HoraMilitar Veamos lo que se hace en la instrucción anterior: Tenemos la fecha y hora: 2017-01-01 10:15:00 la cual convertimos a datetime cast('2017-01-01 10:15:00' as datetime) luego le sumamos 12 horas para ejemplificar el ejercicio "dateadd(HOUR,12," y por ultimo pasamos a varchar para darle formato militar CONVERT(VARCHAR(8), "Aquí la fecha",108) Notese que uso el código 108 de con...