Edit

Share via


Queryable.AggregateBy Method

Definition

Overloads

AggregateBy<TSource,TKey,TAccumulate>(IQueryable<TSource>, Expression<Func<TSource, TKey>>, Expression<Func<TKey,TAccumulate>>, Expression<Func<TAccumulate, TSource,TAccumulate>>, IEqualityComparer<TKey>)

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

AggregateBy<TSource,TKey,TAccumulate>(IQueryable<TSource>, Expression<Func<TSource, TKey>>, TAccumulate, Expression<Func<TAccumulate,TSource,TAccumulate>>, IEqualityComparer<TKey>)

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

AggregateBy<TSource,TKey,TAccumulate>(IQueryable<TSource>, Expression<Func<TSource, TKey>>, Expression<Func<TKey,TAccumulate>>, Expression<Func<TAccumulate, TSource,TAccumulate>>, IEqualityComparer<TKey>)

Source:
Queryable.cs

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

public static System.Linq.IQueryable<System.Collections.Generic.KeyValuePair<TKey,TAccumulate>> AggregateBy<TSource,TKey,TAccumulate> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector, System.Linq.Expressions.Expression<Func<TKey,TAccumulate>> seedSelector, System.Linq.Expressions.Expression<Func<TAccumulate,TSource,TAccumulate>> func, System.Collections.Generic.IEqualityComparer<TKey>? keyComparer = default);
static member AggregateBy : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Key>> * System.Linq.Expressions.Expression<Func<'Key, 'Accumulate>> * System.Linq.Expressions.Expression<Func<'Accumulate, 'Source, 'Accumulate>> * System.Collections.Generic.IEqualityComparer<'Key> -> System.Linq.IQueryable<System.Collections.Generic.KeyValuePair<'Key, 'Accumulate>>
<Extension()>
Public Function AggregateBy(Of TSource, TKey, TAccumulate) (source As IQueryable(Of TSource), keySelector As Expression(Of Func(Of TSource, TKey)), seedSelector As Expression(Of Func(Of TKey, TAccumulate)), func As Expression(Of Func(Of TAccumulate, TSource, TAccumulate)), Optional keyComparer As IEqualityComparer(Of TKey) = Nothing) As IQueryable(Of KeyValuePair(Of TKey, TAccumulate))

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
IQueryable<TSource>

An IQueryable<T> to aggregate over.

keySelector
Expression<Func<TSource,TKey>>

A function to extract the key for each element.

seedSelector
Expression<Func<TKey,TAccumulate>>

A factory for the initial accumulator value.

func
Expression<Func<TAccumulate,TSource,TAccumulate>>

An accumulator function to be invoked on each element.

keyComparer
IEqualityComparer<TKey>

An IEqualityComparer<T> to compare keys with.

Returns

IQueryable<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>(IQueryable<TSource>, Expression<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

AggregateBy<TSource,TKey,TAccumulate>(IQueryable<TSource>, Expression<Func<TSource, TKey>>, TAccumulate, Expression<Func<TAccumulate,TSource,TAccumulate>>, IEqualityComparer<TKey>)

Source:
Queryable.cs

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

public static System.Linq.IQueryable<System.Collections.Generic.KeyValuePair<TKey,TAccumulate>> AggregateBy<TSource,TKey,TAccumulate> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector, TAccumulate seed, System.Linq.Expressions.Expression<Func<TAccumulate,TSource,TAccumulate>> func, System.Collections.Generic.IEqualityComparer<TKey>? keyComparer = default);
static member AggregateBy : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Key>> * 'Accumulate * System.Linq.Expressions.Expression<Func<'Accumulate, 'Source, 'Accumulate>> * System.Collections.Generic.IEqualityComparer<'Key> -> System.Linq.IQueryable<System.Collections.Generic.KeyValuePair<'Key, 'Accumulate>>
<Extension()>
Public Function AggregateBy(Of TSource, TKey, TAccumulate) (source As IQueryable(Of TSource), keySelector As Expression(Of Func(Of TSource, TKey)), seed As TAccumulate, func As Expression(Of Func(Of TAccumulate, TSource, TAccumulate)), Optional keyComparer As IEqualityComparer(Of TKey) = Nothing) As IQueryable(Of KeyValuePair(Of TKey, TAccumulate))

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
IQueryable<TSource>

An IQueryable<T> to aggregate over.

keySelector
Expression<Func<TSource,TKey>>

A function to extract the key for each element.

seed
TAccumulate

The initial accumulator value.

func
Expression<Func<TAccumulate,TSource,TAccumulate>>

An accumulator function to be invoked on each element.

keyComparer
IEqualityComparer<TKey>

An IEqualityComparer<T> to compare keys with.

Returns

IQueryable<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>(IQueryable<TSource>, Expression<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