lunedì 2 dicembre 2024

C# Linq il metodo AggregateBy in .Net 9

Nel nuovo Framework .Net versione 9, sono stati diversi metodi per la gestione dei dati con Linq, in particolare è stato aggiunto il metodo "AggregateBy" che permette di raggruppare determinati elementi secondo la condizione impostata.

Nel frammento di codice qui di seguito sono raggruppati tutti quelli che hanno un certo ruolo. 

Classe:

   public class Anagrafica()

   {

     public string Nome { get  ; set ; }

     public string Cognome { get; set; }

 

    public string Ruolo { get; set; }


   }


C#

  var persone = new List<Anagrafica>

  {

      new Anagrafica{Nome = "Emanuele", Cognome = "Maffei", Ruolo = "Impiegato" },

      new Anagrafica{Nome = "Luigi", Cognome = "Castaldi", Ruolo = "Direttore" },

      new Anagrafica{Nome = "Luca", Cognome = "Bianchi", Ruolo = "Funzionario" },

      new Anagrafica{Nome = "Max", Cognome = "Rossi", Ruolo = "Impiegato" },

       new Anagrafica{Nome = "Francesca", Cognome = "Lafenia", Ruolo = "Funzionario" },

      new Anagrafica{Nome = "Maria", Cognome = "Verdi", Ruolo = "Impiegato" },

  };

 

//Risultato

    //Nominativo: Emanuele Maffei, Max Rossi,Maria Verdi Ruolo: Impiegato

    //Nominativo: Luigi Castaldi Ruolo: Direttore

    //Nominativo: Luca Bianchi, Francesca Lafenia Ruolo: Funzionario

 

    var risultAggreg = persone.AggregateBy(

        persona => persona.Ruolo,

        seed: new List<string>(),

        func: (totale, persona) => [..totale, persona.Nome + " " + persona.Cognome] );

    foreach (var (ruolo, nominativo) in risultAggreg)

    {

        Debug.WriteLine("Nominativo: " + string.Join(",", nominativo) + " Ruolo: " + ruolo);

    }


Nessun commento: