Или вы можете отсортировать список следующим образом:
myPersonList.Sort(delegate(Person p1, Person p2)
{
int result = p1.Surname.CompareTo(p2.Surname);
if (result == 0)
result = p1.Forname.CompareTo(p2.Forname);
return result;
});
В качестве альтернативы вы могли бы Person
реализовать IComparable<Person>
с помощью этого метода:
public int CompareTo(Person other)
{
int result = this.Surname.CompareTo(other.Surname);
if (result == 0)
result = this.Forname.CompareTo(other.Forname);
return result;
}
РЕДАКТИРОВАТЬ Как прокомментировал Марк, вы можете решить, что вам нужно проверить наличие нулей. Если это так, вы должны решить, следует ли сортировать значения NULL сверху или снизу. Примерно так:
if (p1==null && p2==null)
return 0; // same
if (p1==null ^ p2==null)
return p1==null ? 1 : -1; // reverse this to control ordering of nulls