Enumerable.AggregateBy Method

Definition

Overloads

AggregateBy<TSource,TKey,TAccumulate>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TKey,TAccumulate>, Func<TAccumulate,TSource,TAccumulate>, IEqualityComparer<TKey>)

Source:
AggregateBy.cs

Applies an accumulator function over a sequence, grouping results by key.

C#
public static System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TAccumulate>> AggregateBy<TSource,TKey,TAccumulate>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector, Func<TKey,TAccumulate> seedSelector, Func<TAccumulate,TSource,TAccumulate> func, System.Collections.Generic.IEqualityComparer<TKey>? keyComparer = default);

Type Parameters

TSource

The type of the elements of source.

TKey

The type of the key returned by keySelector.

TAccumulate

The type of the accumulator value.

Parameters

source
IEnumerable<TSource>

An IEnumerable<T> to aggregate over.

keySelector
Func<TSource,TKey>

A function to extract the key for each element.

seedSelector
Func<TKey,TAccumulate>

A factory for the initial accumulator value.

func
Func<TAccumulate,TSource,TAccumulate>

An accumulator function to be invoked on each element.

keyComparer
IEqualityComparer<TKey>

An IEqualityComparer<T> to compare keys with.

Returns

IEnumerable<KeyValuePair<TKey,TAccumulate>>

An enumerable containing the aggregates corresponding to each key deriving from source.

Remarks

This method is comparable to the GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) methods where each grouping is being aggregated into a single value as opposed to allocating a collection for each group.

Applies to

.NET 9
Product Versions
.NET 9

AggregateBy<TSource,TKey,TAccumulate>(IEnumerable<TSource>, Func<TSource, TKey>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, IEqualityComparer<TKey>)

Source:
AggregateBy.cs

Applies an accumulator function over a sequence, grouping results by key.

C#
public static System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TAccumulate>> AggregateBy<TSource,TKey,TAccumulate>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector, TAccumulate seed, Func<TAccumulate,TSource,TAccumulate> func, System.Collections.Generic.IEqualityComparer<TKey>? keyComparer = default);

Type Parameters

TSource

The type of the elements of source.

TKey

The type of the key returned by keySelector.

TAccumulate

The type of the accumulator value.

Parameters

source
IEnumerable<TSource>

An IEnumerable<T> to aggregate over.

keySelector
Func<TSource,TKey>

A function to extract the key for each element.

seed
TAccumulate

The initial accumulator value.

func
Func<TAccumulate,TSource,TAccumulate>

An accumulator function to be invoked on each element.

keyComparer
IEqualityComparer<TKey>

An IEqualityComparer<T> to compare keys with.

Returns

IEnumerable<KeyValuePair<TKey,TAccumulate>>

An enumerable containing the aggregates corresponding to each key deriving from source.

Remarks

This method is comparable to the GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) methods where each grouping is being aggregated into a single value as opposed to allocating a collection for each group.

Applies to

.NET 9
Product Versions
.NET 9