Il metodo Sum di LINQ permette di sommare il valore di una o più proprietà contenute in oggetti che si trovano in una lista. Il metodo accetta in input una lambda che torna un oggeto che deve essere di tipo numerico numerico come Int32, Int64, decimal e così via. Sebbene questo copra la quasi totalità dei casi in cui vogliamo eseguire delle somme, esistono casi in cui vogliamo sommare altri tipi di dati. Nell'esempio vediamo come creare un overload del metodo Sum che permette di sommare oggetti di tipo TimeSpan.
public static TimeSpan Sum<T>(this IEnumerable<T> source, Func<T, TimeSpan> selector) { return source.Select(selector).Aggregate(TimeSpan.Zero, (t1, t2) => t1 + t2); }
Il metodo è abbastanza semplice e lavora in due fasi. Nella prima fase scorre gli oggetti nella lista recuperando la proprietà di tipo Timespan espressa nella lambda in input. Nella seconda fare sfrutta il metodo Aggregate per sommare gli oggetti TimeSpan. Il risultato della chiamata al metdo Sum è un altro oggetto TimeSpan con la somma.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Cambiare la chiave di partizionamento di Azure Cosmos DB
Migliorare la sicurezza dei prompt con Azure AI Studio
Utilizzare i primary constructor di C# per inizializzare le proprietà
Utilizzare la versione generica di EntityTypeConfiguration in Entity Framework Core
Disabilitare automaticamente un workflow di GitHub (parte 2)
Applicare un filtro per recuperare alcune issue di GitHub
Referenziare un @layer più alto in CSS
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Esporre i propri servizi applicativi con Semantic Kernel e ASP.NET Web API
Migrare una service connection a workload identity federation in Azure DevOps
I più letti di oggi
- Modificare la luminosità dello schermo nella Universal Windows Platform
- Visual Basic 2005 Conference, 23 marzo a Milano con i PM di VB
- Utilizzare la direttiva ngStyle di Angular
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Creare velocemente microservice grazie a minimal API di ASP.NET Core 6
- Ballmer inizia la keynote parlando del momento attuale. https://aspit.co/build-13 #bldwin
- Utilizzare le Composition API nella Universal Windows Platform
- Usare SymbolIcon per inserire icone standard nelle Universal App
- Eseguire query con LINQ to SQL
- Ottimizzare la persistenza che coinvolge un solo oggetto con #entityframework Core 7 https://aspit.co/cey di @sm15455