How can I sort generic list DESC and ASC? With LINQ and without LINQ? I'm using VS2008.
class Program
{
static void Main(string[] args)
{
List<int> li = new List<int>();
li.Add(456);
li.Add(123);
li.Add(12345667);
li.Add(0);
li.Add(1);
li.Sort();
foreach (int item in li)
{
Console.WriteLine(item.ToString() + "\n");
}
Console.ReadKey();
}
}
Without Linq:
Ascending:
li.Sort();
Descending:
li.Sort();
li.Reverse();
I was checking all the answer above and wanted to add one more additional information. I wanted to sort the list in DESC order and I was searching for the solution which is faster for bigger inputs and I was using this method earlier :-
li.Sort();
li.Reverse();
but my test cases were failing for exceeding time limits, so below solution worked for me:-
li.Sort((a, b) => b.CompareTo(a));
So Ultimately the conclusion is that 2nd way of Sorting list in Descending order is bit faster than the previous one.
without linq,
use Sort()
and then Reverse()
it.
Very simple way to sort List with int values in Descending order:
li.Sort((a,b)=> b-a);
Hope that this helps!
Source: Stackoverflow.com