ParallelEnumerable.OrderBy<TSource, TKey> Method (ParallelQuery<TSource>, Func<TSource, TKey>)

.NET Framework (current version)

The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Sorts in parallel the elements of a sequence in ascending order according to a key.

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

public static OrderedParallelQuery<TSource> OrderBy<TSource, TKey>(
	this ParallelQuery<TSource> source,
	Func<TSource, TKey> keySelector


Type: System.Linq.ParallelQuery<TSource>

A sequence of values to order.

Type: System.Func<TSource, TKey>

A function to extract a key from an element.

Return Value

Type: System.Linq.OrderedParallelQuery<TSource>

An OrderedParallelQuery{TSource} whose elements are sorted according to a key.

Type Parameters


The type of elements of source.


The type of the key returned by keySelector.

Exception Condition

source or keySelector is a null reference (Nothing in Visual Basic).


The query was canceled with the token passed in through WithCancellation.


One or more exceptions occurred during the evaluation of the query.

In contrast to the sequential implementation, this is not a stable sort. To achieve a stable sort, change a query of the form: var ordered = source.Select((e,i) => new { E=e, I=i }).OrderBy((v) => v.e).ThenBy(v => v.i).Select((v) => v.e); 

Universal Windows Platform
Available since 8
.NET Framework
Available since 4.0
Portable Class Library
Supported in: portable .NET platforms
Windows Phone
Available since 8.1
Return to top