Enumerable.OrderBy Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Sorts the elements of a sequence in ascending order.
Overloads
| Name | Description |
|---|---|
|
OrderBy |
Sorts the elements of a sequence in ascending order according to a key. |
|
OrderBy |
Sorts the elements of a sequence in ascending order by using a specified comparer. |
OrderBy(IEnumerable, Func)
- Source:
- OrderBy.cs
- Source:
- OrderBy.cs
- Source:
- OrderBy.cs
- Source:
- OrderBy.cs
- Source:
- OrderBy.cs
Sorts the elements of a sequence in ascending order according to a key.
public:
generic
[System::Runtime::CompilerServices::Extension]
static System::Linq::IOrderedEnumerable ^ OrderBy(System::Collections::Generic::IEnumerable ^ source, Func ^ keySelector);
public static System.Linq.IOrderedEnumerable OrderBy(this System.Collections.Generic.IEnumerable source, Func keySelector);
static member OrderBy : seq<'Source> * Func<'Source, 'Key> -> System.Linq.IOrderedEnumerable<'Source>
Public Function OrderBy(Of TSource, TKey) (source As IEnumerable(Of TSource), keySelector As Func(Of TSource, TKey)) As IOrderedEnumerable(Of TSource)
Type Parameters
- TSource
The type of the elements of source.
- TKey
The type of the key returned by keySelector.
Parameters
- source
-
IEnumerable
A sequence of values to order.
- keySelector
-
Func
A function to extract a key from an element.
Returns
An IOrderedEnumerable
Exceptions
source or keySelector is null.
Examples
The following code example demonstrates how to use OrderBy
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void OrderByEx1()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
IEnumerable query = pets.OrderBy(pet => pet.Age);
foreach (Pet pet in query)
{
Console.WriteLine("{0} - {1}", pet.Name, pet.Age);
}
}
/*
This code produces the following output:
Whiskers - 1
Boots - 4
Barley - 8
*/
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Sub OrderByEx1()
' Create an array of Pet objects.
Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8},
New Pet With {.Name = "Boots", .Age = 4},
New Pet With {.Name = "Whiskers", .Age = 1}}
' Order the Pet objects by their Age property.
Dim query As IEnumerable(Of Pet) =
pets.OrderBy(Function(pet) pet.Age)
Dim output As New System.Text.StringBuilder
For Each pt As Pet In query
output.AppendLine(pt.Name & " - " & pt.Age)
Next
' Display the output.
Console.WriteLine(output.ToString())
End Sub
' This code produces the following output:
'
' Whiskers - 1
' Boots - 4
' Barley - 8
Remarks
This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its GetEnumerator method directly or by using foreach in C# or For Each in Visual Basic.
To order a sequence by the values of the elements themselves, specify the identity function (x => x in C# or Function(x) x in Visual Basic) for keySelector.
Two methods are defined to extend the type IOrderedEnumerableThenBy and ThenByDescending, enable you to specify additional sort criteria to sort a sequence. ThenBy and ThenByDescending also return an IOrderedEnumerableThenBy or ThenByDescending can be made.
Note
Because IOrderedEnumerable
This method compares keys by using the default comparer Default.
This method performs a stable sort; that is, if the keys of two elements are equal, the order of the elements is preserved. In contrast, an unstable sort does not preserve the order of elements that have the same key.
In query expression syntax, an orderby (C#) or Order By (Visual Basic) clause translates to an invocation of OrderBy.
See also
- OrderByDescending
(IEnumerable , Func ) - OrderByDescending
(IEnumerable , Func , IComparer ) - orderby clause (C# Reference)
- Order By Clause (Visual Basic)
Applies to
OrderBy(IEnumerable, Func, IComparer)
- Source:
- OrderBy.cs
- Source:
- OrderBy.cs
- Source:
- OrderBy.cs
- Source:
- OrderBy.cs
- Source:
- OrderBy.cs
Sorts the elements of a sequence in ascending order by using a specified comparer.
public:
generic
[System::Runtime::CompilerServices::Extension]
static System::Linq::IOrderedEnumerable ^ OrderBy(System::Collections::Generic::IEnumerable ^ source, Func ^ keySelector, System::Collections::Generic::IComparer ^ comparer);
public static System.Linq.IOrderedEnumerable OrderBy(this System.Collections.Generic.IEnumerable source, Func keySelector, System.Collections.Generic.IComparer comparer);
public static System.Linq.IOrderedEnumerable OrderBy(this System.Collections.Generic.IEnumerable source, Func keySelector, System.Collections.Generic.IComparer? comparer);
static member OrderBy : seq<'Source> * Func<'Source, 'Key> * System.Collections.Generic.IComparer<'Key> -> System.Linq.IOrderedEnumerable<'Source>
Public Function OrderBy(Of TSource, TKey) (source As IEnumerable(Of TSource), keySelector As Func(Of TSource, TKey), comparer As IComparer(Of TKey)) As IOrderedEnumerable(Of TSource)
Type Parameters
- TSource
The type of the elements of source.
- TKey
The type of the key returned by keySelector.
Parameters
- source
-
IEnumerable
A sequence of values to order.
- keySelector
-
Func
A function to extract a key from an element.
Returns
An IOrderedEnumerable
Exceptions
source or keySelector is null.
Remarks
This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its GetEnumerator method directly or by using foreach in C# or For Each in Visual Basic.
To order a sequence by the values of the elements themselves, specify the identity function (x => x in C# or Function(x) x in Visual Basic) for keySelector.
Two methods are defined to extend the type IOrderedEnumerableThenBy and ThenByDescending, enable you to specify additional sort criteria to sort a sequence. ThenBy and ThenByDescending also return an IOrderedEnumerableThenBy or ThenByDescending can be made.
Note
Because IOrderedEnumerable
If comparer is null, the default comparer Default is used to compare keys.
This method performs a stable sort; that is, if the keys of two elements are equal, the order of the elements is preserved. In contrast, an unstable sort does not preserve the order of elements that have the same key.