Introducción a la expresión Lambda de C#

Introducción a la expresión Lambda de C#

Una expresión Lambda en C# es una función anónima, que contiene una expresión o un conjunto de declaraciones y el operador utilizado para implementar la expresión Lambda es '=>'. La expresión Lambda consta de dos partes, de las cuales la parte izquierda es la entrada, mientras que la parte del lado derecho es la expresión. Una expresión Lambda simple toma un argumento y devuelve valor y uno de los escenarios más comunes para usar la expresión lambda sería la lista.

Sintaxis

Ahora que hemos entendido qué es Lambda Expression en C#, comprendamos la sintaxis estándar para implementar la expresión. Con Lambda Expression, tenemos dos sintaxis para dos tipos:

Comienza tu curso de desarrollo de software gratuito

Desarrollo web, lenguajes de programación, pruebas de software y otros

  • Expresión Lambda: Esto contiene una entrada y una expresión.

Sintaxis:

input => expression;

  • Declaración Lambda: Esto simplemente contiene entrada y una de las pocas declaraciones que se ejecutarán.

Sintaxis:

input => { statements };

Según la situación, los desarrolladores son libres de elegir cuál se adapta a sus necesidades.

¿Cómo funciona Lambda Expression en C#?

Cuando implementamos una expresión Lambda, tenemos dos lados y el símbolo Lambda de => en el medio. El lado izquierdo toma una entrada, de cualquier tipo, mientras que el lado derecho toma una expresión o declaración. En C#, Lambda Expression implementa una función que permite a nuestro compilador inferir el tipo de variable en función del contexto en el que se encuentra. Esta función se denomina función de inferencia de tipo. Podemos pasar funciones a una llamada de método, como un argumento.

Cada expresión lambda se asigna internamente a una interfaz. Ahora, cuando ejecutamos un programa con Lambda Expression, el compilador determina qué interfaz se asignará, según el contexto de la expresión, todo sucede en el momento de la compilación. Estas expresiones son métodos anónimos, es decir, métodos sin nombres, y se implementan con la interfaz funcional.

Ejemplos:Ahora comencemos con la implementación de la expresión lambda. Para nuestro primer programa, implementaremos la expresión lambda en una forma simple, donde usaremos una clase definida por el usuario y nuestro segundo ejemplo será bastante simple donde encontraremos la primera aparición de un número impar en una lista. Entonces, comencemos.

Código:

using System;
using System.Collections.Generic;
using System.Linq;
class City_Details {
public int cityCode {
get;
set;
}
public string cityName {
get;
set;
}
}
class det {
public static void Main(string[] args) {
List<City_Details> details = new List<City_Details>() {
new City_Details{ cityCode = 1, cityName = "Mumbai" },
new City_Details{ cityCode = 2, cityName = "Chennai" },
new City_Details{ cityCode = 3, cityName = "Pune" },
new City_Details{ cityCode = 4, cityName = "Ahmedabad" },
new City_Details{ cityCode = 5, cityName = "Delhi" }
};
var newDetails = details.OrderBy(x => x.cityName);
foreach(var value in newDetails) {
Console.WriteLine(value.cityCode + " " + value.cityName);
}
}
}

Explicación del código: Después de importar los archivos del sistema, creamos una clase con dos propiedades como código de ciudad y nombre de ciudad. Luego tenemos nuestra clase det, con funciones principales y otras. Aquí llamamos a nuestra primera clase y asignamos el código de ciudad y el nombre en forma de lista. Luego enumeramos nuestra lista de detalles, por orden, usando OrderBy y aquí implementamos la expresión lambda. Ahora que hemos enumerado los datos en una lista que va por nombre de ciudad, ingresamos un ciclo foreach e imprimimos cada línea siguiente. Si se ejecuta sin ningún error, este código imprimirá la lista, pero de manera diferente, lo que significa que Ahmedabad, que comienza con A, se imprimirá primero y Pune irá al final. Consulte la captura de pantalla adjunta a continuación de la salida:

Como puede ver, nuestra salida es la esperada, en orden alfabético. Ahora, pasando a nuestro segundo ejemplo, tenemos una lista simple de números, que consta de números pares e impares. Así que entendamos y ejecutemos nuestro segundo programa.

Código:

using System;
using System.Collections.Generic;
class ExampleTwo {
static void Main() {
List<int> newList = new List<int>() { 10, 21, 31, 40 };
int oddNumber = newList.FindIndex(x => x % 2 != 0);
Console.WriteLine( "\n " + oddNumber);
}
}

Explicación del código: Este es nuestro ejemplo más simple de implementación de expresiones Lambda, donde simplemente usamos una lista y una expresión Lambda. Comenzando con los archivos del sistema, luego nuestra clase ExampleTwo con main. Luego inicializamos nuestra Lista de enteros y en nuestra lista, tenemos cuatro números. Estos son dos números pares e impares. A continuación, tenemos nuestra variable entera, donde usamos FindIndex y aquí es donde usamos Lambda Expression. Dentro de FindIndex, tenemos una x como entrada y nuestra salida será un número que no es divisible por el número 2. Después de esta matemática, tendremos índices de nuestros números impares. Y finalmente tenemos nuestra declaración de salida, que devolverá el número de índice de la primera aparición del número impar. Consulte la captura de pantalla adjunta a continuación de la salida:

Como entendimos en la explicación del código, nuestra salida será el número de índice del número impar y no el número impar en sí. Así que aquí tenemos 1 que es un índice de 21.

Ventajas

Ahora que hemos aprendido casi todo sobre la expresión Lambda en C#, debemos comprender el beneficio de usarla. Una de las principales ventajas es la capacidad de reutilizar el código, entonces tenemos una mejor legibilidad. Al no tener que especificar el tipo de entrada, es una de las funciones más flexibles.

Uno de los beneficios es la capacidad de escribir un método para la expresión lambda, justo donde queramos usarlo. Esto es mejor cuando necesitamos crear y usar un método solo una vez. De esta manera, se ahorran muchos de nuestros esfuerzos, donde no tenemos que declarar y escribir un método separado.

Conclusión

La expresión lambda en cualquier lenguaje de programación puede ser de gran utilidad. En C#, Lambda Expression funciona como una expresión anónima, donde tiene una entrada a la izquierda y una expresión o una lista de declaraciones a la derecha. La expresión Lambda se denota con “=>”. Es la flexibilidad de tener cualquier tipo de aporte lo que lo hace de gran utilidad para los desarrolladores.