Una opción es escribir un comparador:
class LastNameComparer : IComparer<Person>
{
public int Compare(Person x, Person y)
{
return String.Compare(x.LastName, y.LastName);
}
}
Una continuación
myPeople.Sort(new LastNameComparer());
Person
También puede aplicar IComparable<Person>
, en cuyo caso será suficiente myPeople.Sort()
. Sin embargo, es posible que desee ordenar por otras propiedades en otros lugares, por lo que este no es un método general; si desea ordenar por ID
en otro informe, puede escribir otro IComparer
, pero solo puede tener un método IComparable<Person>.CompareTo(Person other)
.
Si estás perezoso, o asegurarse de que no va a usar de nuevo, también se puede utilizar un lambda:
myPeople.Sort((p1, p2) => String.Compare(p1.LastName, p2.LastName));
duplicado: http: // stackoverflow.com/questions/3062373/how-can-i-sort-generic-list-with-linq – brainimus