Sorting Data
A sorting operation orders the elements of a sequence based on one or more attributes. The first sort criterion performs a primary sort on the elements. By specifying a second sort criterion, you can sort the elements within each primary sort group.
The following illustration shows the results of an alphabetical sort operation on a sequence of characters.
The standard query operator methods that sort data are listed in the following section.
|
Method Name |
Description |
C# Query Expression Syntax |
Visual Basic Query Expression Syntax |
More Information |
|---|---|---|---|---|
|
OrderBy |
Sorts values in ascending order. |
orderby |
Order By |
|
|
OrderByDescending |
Sorts values in descending order. |
orderby … descending |
Order By … Descending |
|
|
ThenBy |
Performs a secondary sort in ascending order. |
orderby …, … |
Order By …, … |
|
|
ThenByDescending |
Performs a secondary sort in descending order. |
orderby …, … descending |
Order By …, … Descending |
|
|
Reverse |
Reverses the order of the elements in a collection. |
Not applicable. |
Not applicable. |
The next example demonstrates how to use the orderby descending (Order By Descending in Visual Basic) clause in a LINQ query to perform a primary sort, in ascending order, and a secondary sort, in descending order. The strings are sorted primarily by length and secondarily by the first letter of the string.
string[] words = { "the", "quick", "brown", "fox", "jumps" };
IEnumerable<string> query = from word in words
orderby word.Length, word.Substring(0, 1) descending
select word;
foreach (string str in query)
Console.WriteLine(str);
/* This code produces the following output:
the
fox
quick
jumps
brown
*/