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


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)


(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.


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


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