Quando abbiamo a disposizione una lista di numeri, trovare il valore più basso o quello più alto è molto semplice grazie rispettivamente ai metodi LINQ Min e Max. La cosa si complica leggermente quando abbiamo una lista di oggetti complessi e dobbiamo trovare quello che ha una proprietà che corrisponde al valore massimo o minimo. Supponiamo di avere una lista di persone e di voler trovare il più giovane. Per fare questo, dobbiamo prima ordinare la lista in base alla data di nascita (in ordinamento discendente), e poi recuperare il primo elemento.
var l = new List<Person>(); l.Add(new Person { FirstName = "Stefano", LastName = "Mostarda", BirthDate = new DateTime(2000, 1, 1) }); l.Add(new Person { FirstName = "Mario", LastName = "Rossi", BirthDate = new DateTime(2001,1, 1) }); l.Add(new Person { FirstName = "Ciro", LastName = "Esposito", BirthDate = new DateTime(2005, 1, 1) }); l.Add(new Person { FirstName = "Luigi", LastName = "Bianchi", BirthDate = new DateTime(2007, 1, 1) }); Console.WriteLine(l.OrderByDescending(c => c.BirthDate).First());
I nuovi metodi MaxBy e MinBy ci permettono di semplificare il codice concentrando in un solo metodo OrderBy e First.
Console.WriteLine(l.MaxBy(c => c.BirthDate).FirstName);
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Le novità di .NET 7 e C# 11
Ottimizzare la persistenza che coinvolge un solo oggetto con Entity Framework Core 7
Utilizzare parametri a livello di controller nel routing di ASP.NET Core
Ottimizzare serializzazione e deserializzaione tramite le options con System.Text.Json
Utilizzare la cancellazione logica in Azure Container Registry
Velocizzare l'installazione delle dipendenze in un workflow di GitHub
Utilizzare il tag HTML template
Leggere il valore di un header della richiesta in ASP.NET Core 6
Utilizzare Front Door come CDN di contenuti statici
Abilitare automaticamente Dependabot in tutti i repository di una organizzazione su GitHub
Migrare un progetto ASP.NET Core da .NET 6 a .NET 7
Raggruppare i parametri di una minimal API in un singolo oggetto in ASP.NET Core