CSharp
Tutorial CSharp: Lambdas
CSharp lambdas: funciones anónimas. Domina el uso de funciones lambda en CSharp mediante ejemplos prácticos y detallados.
Aprende CSharp GRATIS y certifícateEn C#, las expresiones Lambda son una forma de definir funciones anónimas, es decir, funciones que no tienen un nombre explícito. Es un concepto introducido con la versión 3.0 de C# y que forma parte integral de la programación funcional.
Las expresiones Lambda se utilizan principalmente para definir código de forma concisa. Dado que son funciones anónimas, se pueden utilizar en cualquier lugar donde se esperen delegados o expresiones de árbol de expresiones. Por lo tanto, son especialmente útiles para escribir consultas LINQ y para pasar a métodos que esperan delegados.
Sintaxis de las expresiones Lambda
La sintaxis básica de una expresión Lambda en C# es la siguiente:
(parámetros) => expresión
Donde:
parámetros
: son los parámetros de entrada para la función Lambda.=>
: es el operador Lambda, que se lee como "va a".expresión
: es el cuerpo de la función Lambda.
Por ejemplo, supóngase que se tiene una lista de números y se quiere encontrar todos los números pares en la lista. Puede usarse una expresión Lambda para definir la condición de filtrado:
List<int> numeros = new List<int> { 1, 2, 3, 4, 5, 6 };
List<int> pares = numeros.FindAll(x => x % 2 == 0);
En C#, FindAll
es un método de extensión que permite filtrar elementos según un predicado específico. En este caso, se le pasa la expresión Lambda x => x % 2 == 0
toma un parámetro x
y devuelve true
si x
es par y false
si no lo es. La función FindAll
aplica esta expresión a cada elemento de la lista y devuelve una nueva lista con todos los elementos que cumplen con la condición.
Expresiones Lambda con múltiples parámetros
Las expresiones Lambda también pueden tomar múltiples parámetros. Por ejemplo, si se quiere ordenar una lista de números en orden descendente, podría usarse la siguiente expresión Lambda:
List<int> numeros = new List<int> { 1, 2, 3, 4, 5, 6 };
numeros.Sort((x, y) => y.CompareTo(x));
Aquí, la expresión Lambda (x, y) => y.CompareTo(x)
toma dos parámetros, x
e y
, y compara y
con x
. Si y
es mayor que x
, devuelve un número positivo; si y
es igual a x
, devuelve 0; y si y
es menor que x
, devuelve un número negativo.
Expresiones Lambda con cuerpo de función
Las expresiones Lambda pueden contener también múltiples declaraciones en un cuerpo de función, en lugar de una sola expresión. En este caso, el cuerpo de la función debe estar entre llaves {}
y debe terminar con una declaración return
. Por ejemplo:
Func<int, int, int> sumar = (x, y) =>
{
int resultado = x + y;
return resultado;
};
int suma = sumar(3, 4); // suma es 7
En este caso, la expresión Lambda (x, y) => { int resultado = x + y; return resultado; }
define una función que toma dos parámetros x
e y
, suma x
e y
y devuelve el resultado.
Conclusión
Las expresiones Lambda en C# son una herramienta muy poderosa que permite escribir código más conciso y flexible. Son esenciales para la programación funcional y se utilizan ampliamente en muchos aspectos de C#, como las consultas LINQ, la programación asíncrona y paralela, y los delegados y eventos.
Ejercicios de esta lección Lambdas
Evalúa tus conocimientos de esta lección Lambdas con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.
Excepciones
Operadores
Control de flujo
Polimorfismo
Funciones
Arrays y listas
Variables y constantes
Diccionarios
Variables y constantes
Constructores y destructores
Clases y encapsulación
Polimorfismo
Eventos
Operadores
LINQ
Lambdas
Excepciones
Objetos
Conjuntos, colas y pilas
Tipos de datos
Tipos de datos
Tareas
Diccionarios en C#
Funciones
Funciones
Constructores y destructores
Constructores y destructores
Delegados
Herencia C Sharp
Uso de consultas LINQ
Excepciones
Lambdas
Conjuntos, colas y pilas
Introducción a C#
Diccionarios
Uso de async y await
Tipos de datos
Clases y objetos
Creación de proyecto C#
Herencia
Uso de consultas LINQ
Arrays y listas
Herencia de clases
Clases y encapsulación
Operadores
Arrays y listas
Uso de async y await
Control de flujo
OOP en C Sharp
CRUD en C# de modelo Customer sobre una lista
Objetos
Control de flujo
Tareas
Variables y constantes
Delegados
Eventos
Todas las lecciones de CSharp
Accede a todas las lecciones de CSharp y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.
Introducción A C#
Sintaxis
Creación De Proyecto C#
Sintaxis
Variables Y Constantes
Sintaxis
Tipos De Datos
Sintaxis
Operadores
Sintaxis
Control De Flujo
Sintaxis
Funciones
Sintaxis
Clases Y Encapsulación
Programación Orientada A Objetos
Objetos
Programación Orientada A Objetos
Constructores Y Destructores
Programación Orientada A Objetos
Herencia
Programación Orientada A Objetos
Polimorfismo
Programación Orientada A Objetos
Excepciones
Excepciones
Arrays Y Listas
Colecciones Y Linq
Diccionarios
Colecciones Y Linq
Conjuntos, Colas Y Pilas
Colecciones Y Linq
Uso De Consultas Linq
Colecciones Y Linq
Delegados
Programación Asíncrona
Eventos
Programación Asíncrona
Lambdas
Programación Asíncrona
Uso De Async Y Await
Programación Asíncrona
Tareas
Programación Asíncrona
En esta lección
Objetivos de aprendizaje de esta lección
- Comprender qué son las expresiones Lambda en C# y cómo se diferencian de las funciones tradicionales.
- Aprender la sintaxis básica de las expresiones Lambda, incluyendo los parámetros y el cuerpo de la función.
- Conocer cómo utilizar las expresiones Lambda en consultas LINQ para filtrar, ordenar y proyectar datos.
- Familiarizarse con el uso de expresiones Lambda en contextos de delegados y eventos para definir acciones y notificaciones.
- Entender que las expresiones Lambda son esenciales en la programación funcional en C# y permiten escribir código más conciso y flexible.