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

Task Parallel System.Threading

Groups in parallel the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. 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) _
) 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
)

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<TKey, TElement>.
resultSelector
Type: System..::.Func<(Of <(TKey, IEnumerable<(Of <(TElement>)>), TResult>)>)
A function to create a result value from each group.

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 TElement 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