C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
It is an extension method found in the System.Linq namespace. It receives a key selector Func instance. We pass it a lambda expression that selects the key.
Example. Let us first create an array of Tuples. You can see that each Tuple has two items of type int. Next, we call OrderByDescending and use a lambda expression that selects the Item1 property of each Tuple instance.
Finally: We see that the Tuples are sorted from the highest Item1 value to the lowest Item1 value.
Based on: .NET 4.5 C# program that uses OrderByDescending using System; using System.Linq; class Program { static void Main() { // 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); } } } Output (6, 4) (3, 6) (0, 60)
This extension method is useful in some situations. But it is probably most often used by the C# compiler when it translates query expressions with the descending contextual keyword.
Tip: Because query expressions do not require explicit delegate syntax (such as lambda expressions =>) they can be easier to read.
Research. I checked the C# specification for details about the descending keyword in queries. When we use "descending," a call of OrderByDescending is added to the translated, method-call syntax.
If an ordering clause specifies a descending direction indicator, an invocation of OrderByDescending or ThenByDescending is produced instead.
Summary. OrderByDescending, a method, is sometimes useful. It requires a Func instance that selects a key. This method is commonly used through the translation of query expressions with the orderby and descending keywords.