Home
Map
OrderBy, OrderByDescending ExamplesUse OrderBy and OrderByDescending from System.Linq. Specify the value to be sorted with a lambda.
C#
This page was last reviewed on Jun 14, 2023.
OrderByDescending. This sorts elements from high to low. It is an extension method found in the System.Linq namespace. It receives a key selector Func instance.
Func
Extension
We pass OrderByDescending a lambda expression that selects the key. The OrderBy method actually means OrderByAscending, as it sorts from low to high.
orderby
OrderByDescending example. Here, each Tuple has 2 items of type int. Next, we call OrderByDescending and use a lambda expression that selects the Item1 property of each Tuple instance.
Tuple
Lambda
Finally We see that the Tuples are sorted from the highest Item1 value to the lowest Item1 value.
Info A reverse sort (a descending sort) is performed. Using descending sorts is usually faster than using a separate reverse pass.
using System; using System.Linq; // Create array of tuples. Tuple<int, int>[] tuples = new Tuple<int, int>[3]; tuples[0] = new Tuple<int, int>(3, 6); tuples[1] = new Tuple<int, int>(6, 4); tuples[2] = new Tuple<int, int>(0, 60); // Order by descending on Item1. var result = tuples.OrderByDescending(a => a.Item1); foreach (var item in result) { Console.WriteLine(item); }
(6, 4) (3, 6) (0, 60)
OrderBy example. OrderBy specifies how a collection should be ordered. It is an extension method. We can invoke OrderBy on any collection that implements IEnumerable.
IEnumerable
Note The lambda matches the signature of Func as the argument. On the right side of the lambda, we reverse each string to get the sort key.
Result The result (of type IOrderedEnumerable) consists of the 4 strings sorted by their characters considered in reverse order.
using System; using System.Linq; // Input array. string[] array = { "the", "glass", "bead", "game" }; // Order alphabetically by reversed strings. var result = array.OrderBy(a => new string(a.ToCharArray().Reverse().ToArray())); // Display results. foreach (var item in result) { Console.WriteLine(item); }
bead the game glass
OrderBy and OrderByDescending are often used by the C# compiler when it translates query expressions with the descending contextual keyword.
descending
Tip Because query expressions do not require explicit delegate syntax (such as lambda expressions) they can be easier to read.
A summary. These 2 methods are sometimes useful. But most often they are used in the translation of query expressions with the orderby and descending keywords.
Dot Net Perls is a collection of tested code examples. Pages are continually updated to stay current, with code correctness a top priority.
Sam Allen is passionate about computer languages. In the past, his work has been recommended by Apple and Microsoft and he has studied computers at a selective university in the United States.
This page was last updated on Jun 14, 2023 (simplify).
Home
Changes
© 2007-2024 Sam Allen.