IOrderedEnumerable<TElement>.CreateOrderedEnumerable<TKey> Method

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)

IOrderedEnumerable<TElement> CreateOrderedEnumerable<TKey>(
	Func<TElement, TKey> keySelector,
	IComparer<TKey> comparer,
	bool descending

Type Parameters


The type of the key produced by keySelector.


Type: System.Func<TElement, TKey>
The Func<T, TResult> used to extract the key for each element.
Type: System.Collections.Generic.IComparer<TKey>
The IComparer<T> used to compare keys for placement in the returned sequence.
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.

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

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.
      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 =
              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


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

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Community Additions