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
Filtering sulle colonne in una QuickGrid di Blazor
Fissare una versione dell'agent nelle pipeline di Azure DevOps
Configurare lo startup di applicazioni server e client con .NET Aspire
Referenziare un @layer più alto in CSS
.NET Aspire per applicazioni distribuite
Creare un webhook in Azure DevOps
Gestione file Javascript in Blazor con .NET 9
Utilizzare QuickGrid di Blazor con Entity Framework
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Ottenere un token di accesso per una GitHub App
I più letti di oggi
- Organizzare i moduli sfruttando CommonJS in Javascript
- Proteggere le risorse Azure con private link e private endpoints
- Rinnovare il token di una GitHub App durante l'esecuzione di un workflow
- Utilizzare le local static function di C# 8
- Real Code Day - Firenze
- WPC 2011 - Assago (MI)
- Disponibile il codice sorgente di Moonlight
- ADO.NET Data Services Silverlight 2 Beta2 Client library Refresh
- Rilasciata la versione beta dei Windows Phone 7 Developer Tools
- WinPhoneItalia.com: dal 15 settembre tutto per sviluppare per Windows Phone e mobile