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
Usare il colore CSS per migliorare lo stile della pagina
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Gestire eccezioni nei plugin di Semantic Kernel in ASP.NET Core Web API
Utilizzare l nesting nativo dei CSS
Loggare le query più lente con Entity Framework
Scrivere selettori CSS più semplici ed efficienti con :is()
Autenticazione di git tramite Microsoft Entra ID in Azure DevOps
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
Utilizzare Container Queries nominali
Fissare una versione dell'agent nelle pipeline di Azure DevOps
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Supportare la sessione affinity di Azure App Service con Application Gateway