Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

+ Sobre ordenação

  • 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
1 resposta
solução!

Olá, Guilherme. Tudo bem?

Obrigado por compartilhar seu código aqui com a gente.

Achei muito interessante a forma como você implementou a ordenação, tanto com IComparer quanto com a expressão lambda. Esses dois métodos são bem úteis para customizar a ordenação de listas em C#. Cada abordagem tem suas vantagens, especialmente em casos onde precisamos de uma ordenação dinâmica ou personalizada.

Uma dica: você pode ordenar diretamente pela função LINQ OrderBy, que é ainda mais concisa, veja este exemplo:

using System.Linq;

List&lt;Pessoa&gt; pessoas = new List&lt;Pessoa&gt; { new Pessoa { Nome = "Carlos" }, new Pessoa { Nome = "Ana" } };
var pessoasOrdenadas = pessoas.OrderBy(p => p.Nome).ToList();

O código acima faz a ordenação em uma linha, utilizando LINQ para simplificar.

Conte com o apoio do Fórum. Abraços e bons estudos!