Home
Search
C# Aggregate ExampleUse the Aggregate extension method from System.Linq to accumulate a result.
dot net perls
Aggregate. This C# method applies a method to each element. It applies a function to each successive element. We specify the function with a Func (often with lambda syntax).
Func
C# method notes. With this extension method, we act upon the aggregate of all previous elements. This makes certain methods, such as sum, possible.
Add example. The first call uses a Func that specifies that the accumulation should be added to the next element. This simply results in the sum of all the elements in the array.
Sum
Accumulate With Aggregate we "accumulate" values, meaning we build up values from each previous function call.
C# program that calls Aggregate method
using System; using System.Linq; class Program { static void Main() { int[] array = { 1, 2, 3, 4, 5 }; int result = array.Aggregate((a, b) => b + a); // 1 + 2 = 3 // 3 + 3 = 6 // 6 + 4 = 10 // 10 + 5 = 15 Console.WriteLine(result); } }
15
Multiply example. The second call is more interesting. It multiplies the accumulation with the next element. The difference between adding and multiplying is significant.
C# program that calls Aggregate method with multiply
using System; using System.Linq; class Program { static void Main() { int[] array = { 1, 2, 3, 4, 5 }; int result = array.Aggregate((a, b) => b * a); // 1 * 2 = 2 // 2 * 3 = 6 // 6 * 4 = 24 // 24 * 5 = 120 Console.WriteLine(result); } }
120
Func. The Aggregate method receives a higher-order procedure of type Func. The Func receives 2 arguments and returns a third. This is the accumulator function.
Extensions. Aggregate() is the first method listed in Visual Studio on many collections (like arrays). Visual Studio is presenting extension methods.
So The list of methods, starting with Aggregate, are methods from a namespace called System.Linq.
Extension
IEnumerable These extension methods act upon any collection that implements the IEnumerable interface.
IEnumerable
However In my experience, Aggregate is one of the least useful extensions. Try using ToArray or ToList to gain familiarity.
ToArray
ToList
Summary. Aggregate is a declarative way of applying an accumulator function to a collection of elements. It can multiply or add all elements together.
Home
© 2007-2021 sam allen. see site info on the changelog