- Autor

- Nombre
- Nelson Silva
- Social
Introducción
Las expresiones lambda se han convertido en una herramienta indispensable para los programadores de C#. Ofrecen una escritura concisa, flexibilidad y la capacidad de crear funciones al vuelo.
- Orígenes de las Expresiones Lambda
- Sintaxis de Lambda en C#
- Beneficios del Uso de Lambda en C#
- Relación con Delegates, Func y Action
- LINQ y Expresiones Lambda
- Casos de Uso Comunes
Orígenes de las Expresiones Lambda
Provenientes del cálculo lambda, una estructura formal en la teoría de la computación, las funciones lambda son ahora un pilar en varios lenguajes de programación modernos. C# incorporó esta funcionalidad, permitiendo que los programadores aprovechen los beneficios de las funciones anónimas.
Sintaxis de Lambda en C#
La expresión lambda en C# utiliza el operador =>. A la izquierda de este operador se especifican los parámetros y a la derecha, la expresión o el bloque de código.
(param1, param2) => param1 * param2;
using System;
using System.Linq;
namespace Base {
class Lambda {
private int[] numeros = new int[] {
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
};
public void Run() {
Console.WriteLine($"Total de números pares: {numeros.Count(numero => numero % 2 == 0)}");
Console.WriteLine($"Total de números impares: {numeros.Count(numero => numero % 2 != 0)}");
}
private int ContarNumerosPares() {
var contador = 0;
foreach (var numero in numeros) {
if (numero % 2 == 0)
contador++;
}
return contador;
}
private int ContarNumerosImpares() {
var contador = 0;
foreach (var numero in numeros) {
if (numero % 2 != 0)
contador++;
}
return contador;
}
}
}
Beneficios del Uso de Lambda en C#
- Concisión: Reduce la necesidad de escribir métodos completos, haciendo el código más limpio.
- Flexibilidad: Se utilizan fácilmente como argumentos o se devuelven como valores.
- Lectura Facilitada: El código se vuelve más expresivo y legible.
Relación con Delegates, Func y Action
- Delegates: Son tipos de referencia que pueden referenciar cualquier método con el mismo conjunto de parámetros y retorno. Las expresiones lambda frecuentemente se asocian a delegates.
- Func: Es un delegate que puede tener cero o más parámetros y devuelve un valor. La última especificación de tipo es siempre el tipo de retorno.
- Action: Similar a Func, pero no devuelve valor (void).
LINQ y Expresiones Lambda
LINQ (Language-Integrated Query) es un conjunto de extensiones de métodos que permite la ejecución de consultas complejas en colecciones. LINQ usa expresiones lambda de forma extensiva, haciendo que la consulta de datos en colecciones, bases de datos y XML sea mucho más simple e intuitiva.
var pares = numeros.Where(numero => numero % 2 == 0);
Casos de Uso Comunes
- Manipulación de Colecciones: Filtrar, ordenar y transformar colecciones.
- Eventos y Delegates: Sustituir métodos anónimos por expresiones lambda.
- Asynchronous Programming: Usar expresiones lambda con
Task.Run()oasyncyawait.
Conclusión
La capacidad de usar expresiones lambda en C# permite que los programadores escriban código más limpio, eficiente y expresivo. Al entender su origen, sintaxis y beneficios, se puede realmente comenzar a sacar el máximo partido de esta poderosa característica.