2013-04-02 4 views
2

je la liste suivante:C# Tri d'une liste personnalisée

public class Address{ 
    public string Number { get; set; } 
    public string Street { get; set; } 
    public string Suburb { get; set; } 
} 

List<Address> MyAddressList = new List<Address>(); 

et ce que je veux faire est une sorte cette liste par Suburb puis rue. J'ai vu que je peux trier par l'une des propriétés (Banlieue dans ce cas):

MyAddressList = MyAddressList.OrderBy(x => x.Suburb).ToList(); 

mais je veux trier par Suburb puis rue. Merci

Répondre

8

Vous pouvez autre chaîne commande en utilisant ThenBy (ou ThenByDescending) appelle:

MyAddressList = MyAddressList.OrderBy(x => x.Suburb).ThenBy(x => x.Street).ToList(); 
1

vous pouvez également utiliser le délégué Comparison comme ceci:

private int CompareAddress(Address first, Address second) 
{ 
    if (first.Suburb.Equals(second.Suburb)) 
    { 
     return first.Street.CompareTo(second.Street); 
    } 
    else 
    { 
     return first.Suburb.CompareTo(second.Suburb); 
    } 
} 

Puis:

List<Address> MyAddressList = new List<Address>(); 
MyAddressList.Sort(CompareAddress);