- Implementar IComparable na classe para definir uma ordem padrão (O que vimos).
- Usar IComparer para criar um comparador externo:
public class ComparadorPorNome : IComparer<Pessoa>
{
public int Compare(Pessoa x, Pessoa y)
{
return x.Nome.CompareTo(y.Nome);
}
}
List<Pessoa> pessoas = new List<Pessoa> { new Pessoa { Nome = "Carlos" }, new Pessoa { Nome = "Ana" } };
pessoas.Sort(new ComparadorPorNome()); // Ordena usando ComparadorPorNome
- Passar uma função lambda ao Sort com a lógica de comparação.
List<Pessoa> pessoas = new List<Pessoa> { new Pessoa { Nome = "Carlos" }, new Pessoa { Nome = "Ana" } };
pessoas.Sort((p1, p2) => p1.Nome.CompareTo(p2.Nome)); // Ordena usando a lambda para comparar