c#对自定义列表进行排序

c#对自定义列表进行排序,c#,linq,list,sorting,object,C#,Linq,List,Sorting,Object,我有以下清单: public class Address{ public string Number { get; set; } public string Street { get; set; } public string Suburb { get; set; } } List<Address> MyAddressList = new List<Address>(); 但我想先按郊区再按街道分类。 谢谢您可以通过使用ThenBy(或Then

我有以下清单:

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

List<Address> MyAddressList = new List<Address>();
但我想先按郊区再按街道分类。
谢谢

您可以通过使用ThenBy(或ThenBy Descending)呼叫链接进一步订购:

你可以用它

按升序对序列中的元素执行后续排序


如果需要,您还可以。

您还可以像这样使用
比较
委托:

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);
    }
}
然后:

List MyAddressList=new List();
MyAddressList.Sort(CompareAddress);
MyAddressList = MyAddressList.OrderBy( x => x.Suburb ).ThenBy(x => x.Street).ToList();
MyAddressList = 
   MyAddressList.OrderBy( x => x.Suburb ).ThenBy(x => x.Street).ToList();
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);
    }
}
List<Address> MyAddressList = new List<Address>();
MyAddressList.Sort(CompareAddress);