Una función lambda en C# es una sintaxis concisa para definir 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. Es especialmente útil en situaciones donde necesitas definir una función simple, que vas a usar una única 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
Vamos a verlo con un ejemplo. La siguiente función lambda que suma dos números:
var sumar = (x, y) => x + y;
Console.WriteLine(sumar(5, 3)); // Output: 8
Aquí tenemos,
- La función lambda toma dos parámetros
x
ey
- 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> { "Luis", "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");