C# OrderByDescending

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

Example

Tuple: type name

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.

TupleLambda Expression

Finally:We see that the Tuples are sorted from the highest Item1 value to the lowest Item1 value.

Program that uses OrderByDescending: C#

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.

Summary

C# programming language

We demonstrated the OrderByDescending extension method. This method requires a Func that selects a key. OrderByDescending is commonly used through the translation of query expressions with the orderby and descending keywords.

OrderBy Clause

C#: LINQ