IOrderedEnumerable<TElement>.CreateOrderedEnumerable<TKey> Method
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Performs a subsequent ordering on the elements of an IOrderedEnumerable<TElement> according to a key.
Namespace: System.Linq
Assembly: System.Core (in System.Core.dll)
Syntax
'Declaration
Function CreateOrderedEnumerable(Of TKey) ( _
keySelector As Func(Of TElement, TKey), _
comparer As IComparer(Of TKey), _
descending As Boolean _
) As IOrderedEnumerable(Of TElement)
IOrderedEnumerable<TElement> CreateOrderedEnumerable<TKey>(
Func<TElement, TKey> keySelector,
IComparer<TKey> comparer,
bool descending
)
Type Parameters
- TKey
The type of the key produced by keySelector.
Parameters
- keySelector
Type: System.Func<TElement, TKey>
The Func<T, TResult> used to extract the key for each element.
- comparer
Type: System.Collections.Generic.IComparer<TKey>
The IComparer<T> used to compare keys for placement in the returned sequence.
- descending
Type: System.Boolean
true to sort the elements in descending order; false to sort the elements in ascending order.
Return Value
Type: System.Linq.IOrderedEnumerable<TElement>
An IOrderedEnumerable<TElement> whose elements are sorted according to a key.
Remarks
The functionality provided by this method is like that provided by ThenBy or ThenByDescending, depending on whether descending is true or false. They both perform a subordinate ordering of an already sorted sequence of type IOrderedEnumerable<TElement>.
Examples
The following code example demonstrates how to use CreateOrderedEnumerable<TKey> to perform a secondary ordering on an IOrderedEnumerable<TElement>.
' Create an array of strings to sort.
Dim fruits() As String = {"apricot", "orange", "banana", "mango", "apple", "grape", "strawberry"}
' First sort the strings by their length.
Dim sortedFruits2 As IOrderedEnumerable(Of String) = _
fruits.OrderBy(Function(fruit) fruit.Length)
' Secondarily sort the strings alphabetically, using the default comparer.
Dim sortedFruits3 As IOrderedEnumerable(Of String) = _
sortedFruits2.CreateOrderedEnumerable(Of String)( _
Function(fruit) fruit, _
System.Collections.Generic.Comparer(Of String).Default, _
False)
Dim output As New System.Text.StringBuilder
' Output the resulting sequence of strings.
For Each fruit As String In sortedFruits3
output.AppendLine(fruit)
Next
' Display the results.
outputBlock.Text &= output.ToString() & vbCrLf
' This code produces the following output:
'
' apple
' grape
' mango
' banana
' orange
' apricot
' strawberry
// Create an array of strings to sort.
string[] fruits = { "apricot", "orange", "banana", "mango", "apple", "grape", "strawberry" };
// First sort the strings by their length.
IOrderedEnumerable<string> sortedFruits2 =
fruits.OrderBy(fruit => fruit.Length);
// Secondarily sort the strings alphabetically, using the default comparer.
IOrderedEnumerable<string> sortedFruits3 =
sortedFruits2.CreateOrderedEnumerable<string>(
fruit => fruit,
Comparer<string>.Default, false);
// Output the resulting sequence of strings.
foreach (string fruit in sortedFruits3)
outputBlock.Text += fruit + "\n";
// This code produces the following output:
//
// apple
// grape
// mango
// banana
// orange
// apricot
// strawberry
Version Information
Silverlight
Supported in: 5, 4, 3
Silverlight for Windows Phone
Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0
XNA Framework
Supported in: Xbox 360, Windows Phone OS 7.0
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.