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
Dallo sviluppo locale ad Azure con .NET Aspire
Introduzione ai web component HTML
Escludere alcuni file da GitHub Copilot
Conoscere il rendering Server o WebAssembly a runtime in Blazor
Implementare il throttle in JavaScript
Utilizzare l nesting nativo dei CSS
Rendere le variabili read-only in una pipeline di Azure DevOps
Recuperare le subissue e il loro stato di completamento in GitHub
Montare Azure Blob Storage su Linux con BlobFuse2
Ridurre il reflow ottimizzando il CSS
Importare repository da Bitbucket a GitHub Enterprise Cloud
Scrivere selettori CSS più semplici ed efficienti con :is()
I più letti di oggi
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Esaminare documenti XML con namespace utilizzando LINQ to XML
- Le DirectInk API nella Universal Windows Platform
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Effetto turnstile su tutte le pagine con il Windows Phone Toolkit
- Gli oggetti CallOut di Expression Blend 4.0
- Sfruttare una CDN con i bundle di ASP.NET


