martedì 10 maggio 2022

.Net 6 MaxBy

Altra interessante novità di .Net 6 è quella del metodo MaxBy di Linq, con il quale restituisce il valore massimo di una lista, ma anzichè il valore come per il metodo Max restituisce l'oggetto.
Supponiamo di avere una classe di tipo persona, con proprietà quali nome, cognome ed età, e vogliamo estrapolare da una lista di questa classe, quello che ha l'età maggiore. In una espressione lambada, avremmo ottenuto il valore massimo con il metodo Max, mentre con il metodo MaxBy otteniamo l'oggetto che ha il valore massimo di una proprietà.

Qui di seguito un esempio pratico.

           List<Persona> persone = new List<Persona>();
            Persona persona = new Persona();
            persona.Cognome = "Mattei";
            persona.nome = "Emanuele";
            persona.eta = 1;
            persone.Add(persona);
            persona = new Persona();
            persona.Cognome = "Cristaldi";
            persona.nome = "Luigi";
            persona.eta = 2;
            persone.Add(persona);
            persona = new Persona();
            persona.Cognome = "Bianchi";
            persona.nome = "Luca";
            persona.eta = 3;
            persone.Add(persona);
            var risultato = persone.MaxBy(x => x.eta); //Restituisce l'oggetto Bianchi Luca
            var risultato2 = persone.Max(x => x.eta); //Restituisce 3 

Oltre al metodo MaxBy è possibile utilizzare i nuovi metodi in .Net 6 che sono MinBy(), DistinctBy(), UnionBy(), IntersectBy(), ExceptBy()




Nessun commento: