Enumerable.Sum<TSource> Method (IEnumerable<TSource>, Func<TSource, Double>)
Computes the sum of the sequence of Double values that are obtained by invoking a transform function on each element of the input sequence.
Assembly: System.Core (in System.Core.dll)
public static double Sum<TSource>( this IEnumerable<TSource> source, Func<TSource, double> selector )
Parameters
- source
-
Type:
System.Collections.Generic.IEnumerable<TSource>
A sequence of values that are used to calculate a sum.
- selector
-
Type:
System.Func<TSource, Double>
A transform function to apply to each element.
Type Parameters
- TSource
The type of the elements of source.
| Exception | Condition |
|---|---|
| ArgumentNullException | source or selector is null. |
This method returns zero if source contains no elements.
You can apply this method to a sequence of arbitrary values if you provide a function, selector, that projects the members of source into a numeric type, specifically Double.
In Visual Basic query expression syntax, an Aggregate Into Sum() clause translates to an invocation of Sum.
The following code example demonstrates how to use Sum<TSource>(IEnumerable<TSource>, Func<TSource, Double>) to sum the projected values of a sequence.
class Package { public string Company { get; set; } public double Weight { get; set; } } public static void SumEx1() { List<Package> packages = new List<Package> { new Package { Company = "Coho Vineyard", Weight = 25.2 }, new Package { Company = "Lucerne Publishing", Weight = 18.7 }, new Package { Company = "Wingtip Toys", Weight = 6.0 }, new Package { Company = "Adventure Works", Weight = 33.8 } }; double totalWeight = packages.Sum(pkg => pkg.Weight); Console.WriteLine("The total weight of the packages is: {0}", totalWeight); } /* This code produces the following output: The total weight of the packages is: 83.7 */
Available since 8
.NET Framework
Available since 3.5
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1