Las expresiones lambda en C# permiten escribir código más conciso y legible, especialmente cuando se combinan con LINQ. A continuación, presentamos una serie de ejercicios prácticos que ayudarán a comprender mejor su uso en distintas situaciones.
Ejercicio 1: Filtrar números pares
Instrucciones: Dada una lista de números enteros, utiliza LINQ y una expresión lambda para obtener solo los números pares.
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
List<int> numeros = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var numerosPares = numeros.Where(n => n
Console.WriteLine("Números pares:");
numerosPares.ForEach(n => Console.Write(n + " "));
}
}
Ejercicio 2: Convertir nombres a mayúsculas
Instrucciones: Dada una lista de nombres, usa Select
con una expresión lambda para convertirlos a mayúsculas.
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
List<string> nombres = new List<string> { "ana", "bruno", "carlos" };
var nombresMayusculas = nombres.Select(n => n.ToUpper()).ToList();
Console.WriteLine("Nombres en mayúsculas:");
nombresMayusculas.ForEach(n => Console.WriteLine(n));
}
}
Ejercicio 3: Encontrar el número máximo
Instrucciones: Dada una lista de números, encuentra el número máximo usando una expresión lambda.
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
List<int> numeros = new List<int> { 10, 20, 30, 5, 15 };
int maximo = numeros.Max();
Console.WriteLine("Número máximo: " + maximo);
}
}
Ejercicio 4: Ordenar una lista de objetos
Instrucciones: Dada una lista de objetos Persona
, ordena las personas por edad de menor a mayor.
using System;
using System.Collections.Generic;
using System.Linq;
class Persona
{
public string Nombre { get; set; }
public int Edad { get; set; }
}
class Program
{
static void Main()
{
List<Persona> personas = new List<Persona>
{
new Persona { Nombre = "Ana", Edad = 30 },
new Persona { Nombre = "Bruno", Edad = 25 },
new Persona { Nombre = "Carlos", Edad = 35 }
};
var personasOrdenadas = personas.OrderBy(p => p.Edad).ToList();
Console.WriteLine("Personas ordenadas por edad:");
personasOrdenadas.ForEach(p => Console.WriteLine(p.Nombre + " - " + p.Edad));
}
}
Ejercicio 5: Agrupar elementos por ciudad
Instrucciones: Dada una lista de personas con ciudad de residencia, agrúpalas por ciudad usando GroupBy
.
using System;
using System.Collections.Generic;
using System.Linq;
class Persona
{
public string Nombre { get; set; }
public string Ciudad { get; set; }
}
class Program
{
static void Main()
{
List<Persona> personas = new List<Persona>
{
new Persona { Nombre = "Ana", Ciudad = "Madrid" },
new Persona { Nombre = "Bruno", Ciudad = "Barcelona" },
new Persona { Nombre = "Carlos", Ciudad = "Madrid" },
new Persona { Nombre = "David", Ciudad = "Sevilla" }
};
var grupos = personas.GroupBy(p => p.Ciudad);
foreach (var grupo in grupos)
{
Console.WriteLine($"Ciudad: {grupo.Key}");
foreach (var persona in grupo)
{
Console.WriteLine(" - " + persona.Nombre);
}
}
}
}
Ejercicio 6: Calcular la edad promedio
Instrucciones: Dada una lista de edades, usa LINQ para calcular la edad promedio.
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
List<int> edades = new List<int> { 20, 25, 30, 35, 40 };
double promedio = edades.Average();
Console.WriteLine("Edad promedio: " + promedio);
}
}
Conclusión
Las expresiones lambda en LINQ permiten realizar operaciones sobre colecciones de datos de manera rápida y eficiente. Estos ejercicios cubren operaciones básicas como filtrado, transformación, búsqueda, ordenamiento, agrupación y cálculo de valores.
Practicar con estos ejemplos te ayudará a mejorar tu comprensión y habilidad para utilizar LINQ en proyectos reales. ¡Sigue explorando y aplicando estas técnicas en tu código!