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
Filtering sulle colonne in una QuickGrid di Blazor
Sfruttare al massimo i topic space di Event Grid MQTT
Supportare il sorting di dati tabellari in Blazor con QuickGrid
Gestire il colore CSS con HWB
Usare il colore CSS per migliorare lo stile della pagina
Gestire liste di tipi semplici con Entity Framework Core
Registrare servizi multipli tramite chiavi in ASP.NET Core 8
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Miglioramenti nelle performance di Angular 16
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Eseguire script pre e post esecuzione di un workflow di GitHub
.NET Conference Italia 2024