Один из вариантов - написать компаратор:
class LastNameComparer : IComparer<Person>
{
public int Compare(Person x, Person y)
{
return String.Compare(x.LastName, y.LastName);
}
}
Тогда
myPeople.Sort(new LastNameComparer());
Person
также может реализовывать IComparable<Person>
, и в этом случае будет достаточно myPeople.Sort()
. Однако вы можете захотеть отсортировать по другим свойствам в других местах, так что это не общий метод; если вы хотите отсортировать по ID
в другом отчете, вы можете написать другой IComparer
, но у вас может быть только один IComparable<Person>.CompareTo(Person other)
метод.
Если вы чувствуете себя ленивым или уверены, что больше не будете его использовать, вы также можете использовать лямбду:
myPeople.Sort((p1, p2) => String.Compare(p1.LastName, p2.LastName));