The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

# Enumerable.Sum<TSource> Method (IEnumerable<TSource>, Func<TSource, Double>)

.NET Framework (current version)

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)

## Syntax

```public static double Sum<TSource>(
this IEnumerable<TSource> source,
Func<TSource, double> selector
)
```

#### Parameters

source
Type:

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.

#### Return Value

Type: System.Double

The sum of the projected values.

#### Type Parameters

TSource

The type of the elements of source.

## Exceptions

Exception Condition
ArgumentNullException

source or selector is null.

## Remarks

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.

## Examples

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
*/

```

## Version Information

Universal Windows Platform
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