.NET Array Dictionary List String 2D Async DataTable Dates DateTime Enum File For Foreach Format IEnumerable If IndexOf Lambda LINQ Parse Path Process Property Regex Replace Sort Split Static StringBuilder Substring Switch Tuple


C#: LINQ
Descending: sort order

OrderByDescending sorts elements from high to low. 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.

FuncExtension Method
Tuple: type name

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)
Lambda expression syntax

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.

Descending

Tip:Because query expressions do not require explicit delegate syntax (such as lambda expressions =>) they can be easier to read.


Books

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.

The C# Programming Language
LINQ: keywords

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.

OrderBy Clause