DEV Community

Panchi
Panchi

Posted on

Agrupamiento de datos de una lista usando LINQ en C#

Un ejemplo de una consulta LINQ en C# que realiza un agrupamiento de datos de una lista (list) basada en el atributo Idde los objetos, y luego organiza los datos agrupados en un nuevo formato.

public class Person
{
    public int Id { get; set; }
    public string? Car { get; set; }
}

static void Main(string[] args)
{
    List<Person> list = [
        new () { Id = 1, Car = "Toyota" },
        new () { Id = 1, Car = "Honda" },
        new () { Id = 2, Car = "Ford" },
        new () { Id = 2, Car = "Chevrolet" },
        new () { Id = 1, Car = "Mazda" },
        new () {Id = 3,Car="Corvete"},
        ];

    var result = (
        from p in list
            group p.Car by p.Id into g
            select new
            {
                PersonId=g.Key,
                Cars=g.OrderBy(car=>car).ToList()
            }
        );

    foreach ( var p in result)
    {
        Console.WriteLine($"PersonId: {p.PersonId}");
        Console.WriteLine($"Cars");
        foreach (var item in p.Cars)
        {
            Console.WriteLine($"- {item}");
        }

        Console.WriteLine();
    }

    Console.WriteLine();
}
Enter fullscreen mode Exit fullscreen mode
  1. Definir la clase con las propiedades correspondientes. Ejemplo: **public class Person {}**.

  2. Definir en una lista cada una de las propiedades asociadas a la clase antes definida agregando sus respectivos datos.

  3. Agrupa los valores de la propiedad Carde cada objeto por su correspondiente Id. Usando group by de LINQ.

  • Dentro de cada grupo, organiza los elementos de Car en un orden específico.
  1. Uso de select new, para crear una nueva lista de objetos con las siguientes propiedades:
  • PersonId: La clave del grupo (Id).

  • Cars: Los valores agrupados de Car, ordenados alfabéticamente o numéricamente (según el tipo de Car), convertidos en una lista.

Ejecución:

Image description

AWS Security LIVE!

Tune in for AWS Security LIVE!

Join AWS Security LIVE! for expert insights and actionable tips to protect your organization and keep security teams prepared.

Learn More

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay