csharp-funciones-lambda

Qué son y cómo usar las funciones lambda

Una función lambda es una función anónima que se puede definir en línea sin necesidad de nombrarla formalmente.

Estas funciones son útiles para escribir código de manera más compacta y legible, especialmente en situaciones donde necesitas definir funciones simples de una sola vez, como en operaciones de filtrado, mapeo o reducción de colecciones.

Si quieres aprender más sobre funciones Lambda
consulta el Curso de Introducción a la Programación leer más ⯈

Sintaxis de las funciones lambda

La sintaxis básica de una función lambda en C# es la siguiente:

(parametros) => expresion
  • Parámetros: Son los parámetros de entrada de la función lambda, separados por comas si hay más de uno.
  • Expresión: Es la expresión que se evalúa y devuelve como resultado de la función lambda.

Ejemplo Básico

A continuación, se muestra un ejemplo básico de una función lambda que suma dos números:

var sumar = (x, y) => x + y;

Console.WriteLine(sumar(5, 3)); // Output: 8

En este ejemplo, la función lambda toma dos parámetros x e y, y devuelve su suma como resultado.

Ejemplos prácticos

En expresiones LINQ

Las funciones lambda son comúnmente utilizadas en expresiones LINQ para realizar operaciones de consulta en colecciones de datos.

Por ejemplo para filtrar una colección,

var numeros = new List<int> { 1, 2, 3, 4, 5 };

var pares = numeros.Where(num => num % 2 == 0);

Transformar una colección,

var nombres = new List<string> { "Juan", "María", "Pedro" };

var mesanjes = nombres.Select(nombre => $"¡Hola, {nombre}!");

En general, para la mayoría de expresiones empleadas en LINQ.

Delegados

Las funciones lambda se pueden asignar a variables de tipo delegado para pasarlas como argumentos a otras funciones o métodos.

var imprimirMensaje = mensaje => Console.WriteLine(mensaje);

imprimirMensaje("¡Hola desde una función lambda!");

Eventos

Las funciones lambda son útiles para suscribirse a eventos de una manera más concisa y expresiva.

Button boton = new Button();

boton.Click += (sender, e) => Console.WriteLine("Botón clickeado");