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
Configurare automaticamente un webhook in Azure DevOps
Potenziare la ricerca su Cosmos DB con Full Text Search
Gestire codice JavaScript con code splitting e lazy loading
Montare Azure Blob Storage su Linux con BlobFuse2
Supportare la sessione affinity di Azure App Service con Application Gateway
Eliminare una project wiki di Azure DevOps
Utilizzare l'espressione if inline in una pipeline di Azure DevOps
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
Proteggere le risorse Azure con private link e private endpoints
Utilizzare Containers in .NET Aspire
Gestire i dati con Azure Cosmos DB Data Explorer
Configurare e gestire sidecar container in Azure App Service
I più letti di oggi
- Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
- .NET Conference Italia 2025 - Milano
- Gestione ciclo di vita in .NET Aspire
- The Agentic Day - Milano
- Gestione CSS in Blazor con .NET 9
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Gestione file Javascript in Blazor con .NET 9
- Inviare un'e-mail con ASP.NET