Introduction
The Sorting operator in LINQ arranges the elements of a sequence based on one or more attributes. You can sort the data with one specific attribute and perform primary sorting on the elements. You can then specify the second sort criterion and sort the elements within the primary sorted group. The different Sorting operators are OrderBy, OrderByDescending, ThenBy, ThenByDescending, and Reverse.
The sorting functionality is achieved using the 'OrderBy operator. Sorting can either be ascending or descending. The default behavior of the OrderBy operator is to sort the data in ascending order. If you want to order your data in descending order, you need to use the OrderByDescending operator.
The syntax of using the OrderBy clause is:
C#
public static OrderedSequence<T> OrderBy<T, K>( this IEnumerable<T> source, Function<T, K> keySelector);
Similarly, you can use the OrderByDescending clause to sort the string in a descending order, as shown in the following code:
C#
public static OrderedSequence<T> OrderByDesceridinq<T, K>( this IEnumerable<T> source, Function<T, K> keySeIector);
Lets take an simple example
Step-1 : Add one ListBox and two Button control on design window
<form id="form1" runat="server">
<div>
<asp:ListBox ID="ListBox1" runat="server"></asp:ListBox>
<br />
<br />
<asp:Button ID="Button1" runat="server" Text="Ascending"
onclick="Button1_Click" />
<asp:Button ID="Button2" runat="server" Text="Descending "
onclick="Button2_Click" />
</div>
</form>
Step-2 : Handle business logic code on Button Click event.
Step-3 : Create double type array with some values.
double [] dotprogramming = { 1, 2, 3, 4, 5, 6 };
Step-4 : Select filter type using OfType<string>(); extension IEnumerable.
Step-5 : Add filtered value into ListBox.
Output of given below code
public partial class Default8 : System.Web.UI.Page
{
double [] dotprogramming = { 1, 2, 3, 4, 5, 6 };
protected void Button1_Click(object sender, EventArgs e)
{
ListBox1.Items.Clear();
var query = from d in dotprogramming
orderby d
select d;
foreach (var item in query)
{
ListBox1.Items.Add(item.ToString() );
}
}
protected void Button2_Click(object sender, EventArgs e)
{
ListBox1.Items.Clear();
var query = from d in dotprogramming
orderby d descending
select d;
foreach (var item in query)
{
ListBox1.Items.Add(item.ToString());
}
}
}