GroupBy(TSource, TKey, TElement, TResult) Method (ParallelQuery(TSource), Func(TSource, TKey), Func(TSource, TElement), Func(TKey, IEnumerable(TElement), TResult), IEqualityComparer(TKey))

Task Parallel System.Threading

Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. Key values are compared by using a specified comparer, and the elements of each group are projected by using a specified function.

Namespace:  System.Linq
Assembly:  System.Threading (in System.Threading.dll)

Syntax

Visual Basic (Declaration)
Public Shared Function GroupBy(Of TSource, TKey, TElement, TResult) ( _
	source As ParallelQuery(Of TSource), _
	keySelector As Func(Of TSource, TKey), _
	elementSelector As Func(Of TSource, TElement), _
	resultSelector As Func(Of TKey, IEnumerable(Of TElement), TResult), _
	comparer As IEqualityComparer(Of TKey) _
) As ParallelQuery(Of TResult)
C#
public static ParallelQuery<TResult> GroupBy<TSource, TKey, TElement, TResult>(
	ParallelQuery<TSource> source,
	Func<TSource, TKey> keySelector,
	Func<TSource, TElement> elementSelector,
	Func<TKey, IEnumerable<TElement>, TResult> resultSelector,
	IEqualityComparer<TKey> comparer
)

Parameters

source
Type: System.Linq..::.ParallelQuery<(Of <(TSource>)>)
A sequence whose elements to group.
keySelector
Type: System..::.Func<(Of <(TSource, TKey>)>)
A function to extract the key for each element.
elementSelector
Type: System..::.Func<(Of <(TSource, TElement>)>)
A function to map each source element to an element in an IGrouping{Key, TElement}.
resultSelector
Type: System..::.Func<(Of <(TKey, IEnumerable<(Of <(TElement>)>), TResult>)>)
A function to create a result value from each group.
comparer
Type: System.Collections.Generic..::.IEqualityComparer<(Of <(TKey>)>)
An IEqualityComparer{TKey} to compare keys.

Type Parameters

TSource
The type of the elements of source.
TKey
The type of the key returned by keySelector.
TElement
The type of the elements in each IGrouping{TKey, TElement}.
TResult
The type of the result value returned by resultSelector.

Return Value

A collection of elements of type TResult where each element represents a projection over a group and its key.

Exceptions

ExceptionCondition
System..::.ArgumentNullException source or keySelector or elementSelector or resultSelector is a null reference (Nothing in Visual Basic).

See Also