I'm usando C# no Framework 3.5. I'm procurando ordenar rapidamente um List<T>
. Para o bem deste exemplo, deixemos's dizer que eu tenho uma Lista de um tipo Pessoa
com uma propriedade de sobrenome. Como eu ordenaria esta Lista utilizando uma expressão lambda?
List<Person> people = PopulateList();
people.OrderBy(???? => ?????)
Se você se refere a um tipo no local (ou seja, a lista é atualizada):
people.Sort((x, y) => string.Compare(x.LastName, y.LastName));
Se te referes a uma nova lista:
var newList = people.OrderBy(x=>x.LastName).ToList(); // ToList optional
Você precisa que a lista seja ordenada no lugar, ou apenas uma seqüência ordenada do conteúdo da lista? A última é mais fácil:
var peopleInOrder = people.OrderBy(person => person.LastName);
Para ordenar no lugar, você'd precisa de um IComparer
ou um Comparação
. Para isso, pode querer considerar ProjectionComparer
em MiscUtil.
(Sei que continuo a trazer o MiscUtil - só que continua a ser relevante...)