Take this class as example.
public class Player
{
public string Name { get; set; }
public int Total { get; set; }
public Player(string name, int total)
{
Name = name;
Total = total;
}
}
Creating the list.
List<Player> lst = new List<player>();
lst.Add(new Player("John", 100));
lst.Add(new Player("Smith", 120));
lst.Add(new Player("Cait", 97));
lst.Add(new Player("Irene", 100));
lst.Add(new Player("Ben", 100));
lst.Add(new Player("Deniel", 88));
Sort By Using List<t>.Sort() Method
Sort by single element "Total
" in ascending order:
lst.Sort(delegate(Player x, Player y)
{
return x.Total.CompareTo(y.Total);
});
Sort by single element "Total
" in descending order:
lst.Sort(delegate(Player x, Player y)
{
return y.Total.CompareTo(x.Total);
});
Sort by multiple elements:
lst.Sort(delegate(Player x, Player y)
{
int a = y.Total.CompareTo(x.Total);
if (a == 0)
a = x.Name.CompareTo(y.Name);
return a;
});
Sort By Using Linq
Sorting by using Linq requires less syntax.
var result1 = lst.OrderBy(a => a.Total);
var result3 = lst.OrderBy(a => a.Total).ThenBy(a => a.Name);
var result2 = lst.OrderByDescending(a => a.Total).ThenByDescending(a => a.Name);