Một lựa chọn là để viết một Comparer:
class LastNameComparer : IComparer<Person>
{
public int Compare(Person x, Person y)
{
return String.Compare(x.LastName, y.LastName);
}
}
Một sau đó
myPeople.Sort(new LastNameComparer());
Person
cũng có thể thực hiện IComparable<Person>
, trong trường hợp này myPeople.Sort()
sẽ đủ. Tuy nhiên, bạn có thể muốn sắp xếp theo các thuộc tính khác ở những nơi khác, vì vậy đây không phải là phương pháp chung; nếu bạn muốn sắp xếp theo ID
trên một báo cáo khác, bạn có thể viết IComparer
khác, nhưng bạn chỉ có thể có một phương thức IComparable<Person>.CompareTo(Person other)
.
Nếu bạn đang cảm thấy lười biếng, hoặc chắc chắn rằng bạn sẽ không sử dụng nó một lần nữa, bạn cũng có thể sử dụng một lambda:
myPeople.Sort((p1, p2) => String.Compare(p1.LastName, p2.LastName));
trùng lặp: http: // stackoverflow.com/questions/3062373/how-can-i-sort-generic-list-with-linq – brainimus