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.
Namespace: System.Linq
Assembly: System.Core (in System.Core.dll)
public static double Sum<TSource>( this IEnumerable<TSource> source, Func<TSource, double> selector )
Type Parameters
- TSource
The type of the elements of source.
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.
Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type IEnumerable<TSource>. When you use instance method syntax to call this method, omit the first parameter.| 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);
outputBlock.Text += String.Format("The total weight of the packages is: {0}", totalWeight) + "\n";
}
/*
This code produces the following output:
The total weight of the packages is: 83.7
*/
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.