Home Assistant Fácil

Curso de Home Assistant y domótica

  • Blog
  • Soy un pardillo
  • Podcast
  • Curso Arduino
  • Curso Domótica
  • Acceder
Usted está aquí: Inicio / Tutoriales / Fragmentos / C# / Operaciones básicas en Linq

Operaciones básicas en Linq

Luis del Valle Hernández

En este fragmento os mostramos ciertas operaciones básicas que se pueden utilizar con las listas en C#. Son muy útiles para filtrar, ordenar, buscar y agrupar elementos de las listas IEnumerable.

El comando que equivale a la condición Where de una clausula SQL sería de la siguiente manera.

//Seleccionamos todos los estudiantes con la edad de 21 años
List<Estudiante> listaEstudiantesEdad = new List<Estudiante>();
listaEstudiantesEdad = listaEstudiantes.Where(estu => estu.Edad == 21).ToList();

//Si lo hacemos por el método tradicional
listaEstudiantesEdad = new List<Estudiante>();
foreach (var estu in listaEstudiantes)
{
 if (estu.Edad == 21)
 {
 listaEstudiantesEdad.Add(estu);
 }
}

//Puede contener varias clausulas
listaEstudiantesEdad = listaEstudiantes.Where(estu => estu.Edad == 21 && estu.Nota >= 5).ToList();

Como podéis comprobar se reduce mucho el código que hay que escribir. Otras funciones interesantes las podéis ver en el siguiente código.

//La sentencia ForEach permite hacer un bucle y recorrer todos los elementos en una sola línea de código
listaEstudiantes.ForEach(estu => estu.Nota == 8);

//Podemos ordenar la lista en sentido ascendente y descendente
listaEstudiants.OrderBy(estu=>estu.Edad);
listaEstudiants.OrderByDescending(estu=>estu.Edad);

//Eliminar todos los elementos que cumplan la condición
listaEstudiants.RemoveAll(estu=>estu.Nota <= 5);

int edadMax = listaEstudiants.Max(estu=>estu.Edad);
int edadMin = listaEstudiants.Min(estu=>estu.Edad);

//Podemos hacer una media de las notas de una manera muy simple
float mediaNotas = listaEstudiants.Sum(estu=>estu.Nota) / listaEstudiants.Count;

Algo más complejo sería hacer una agrupación. En el siguiente ejemplo os mostramos como podemos agrupar una lista de estudiantes por edades y mostrarlo por consola.

//Creamos la query
var mismaEdad =
        from estuidante in estudiantes
        group estudiante by estudiante.Edad into grupoMismaEdad
        orderby grupoMismaEdad.Key
        select grupoMismaEdad;

    foreach (var grupoEdad in mismaEdad)
    {
        Console.WriteLine("Edad en común: {0}", grupoEdad.Key);
        //Recorremos todos los estudiantes con la misma edad
        foreach (var estudiante in grupoEdad)
        {
            Console.WriteLine("\t{0}, {1} {2}", estudiante.Nombre, estudiante.Apellidos, estudiante.Edad);
        }
    }

Linq es realmente una herramienta muy potente que nos puede ayudar a comprimir nuestro código dejándolo a la mínima expresión como habéis podido comprobar.

NUKI SMART LOCK

Nuki Smart Lock Go, Pro o Ultra: cuál comprar y la prueba que lo decide todo

Mira chapapote, imagina la cara de tonto que se te queda cuando te gastas casi 350 pavos en una cerradura inteligente Nuki, llega a casa, la abres con … [+ info...]

slzb-06

SLZB-06U: migrar coordinador Zigbee desde Sonoff Dongle P (y por qué el Dongle E es diferente)

Vale, lo confieso: no hay nada que me dé más pereza en domótica que tener que migrar toda la red Zigbee. El típico momento en el que tu viejo … [+ info...]

Home Assistant 2026.6

Home Assistant 2026.6: dashboard inteligente, IR bidireccional y automatizaciones más claras

Llevas meses peleándote con el dashboard de Home Assistant: añadir una tarjeta requería saber de memoria el nombre de cada tipo de bloque, y al final … [+ info...]

Copyright © 2026 · Programar Fácil · Aviso legal