static void Main(string[] args) { Aula aulaIntro = new Aula("Introdução às Coleções", 21); Aula aulaModelando = new Aula("Modelando a Classe Aula", 15); Aula aulaSets = new Aula("Trabalhando com Conjuntos", 13); //List<Aula> aulas = new List<Aula>(); //aulas.Add(aulaIntro); //aulas.Add(aulaModelando); //aulas.Add(aulaSets); //A inicialização acima vai ser simplificada abaixo List <Aula> aulas = new List <Aula> { aulaIntro, aulaModelando, aulaSets }; ////a próxima linha gera um erro de compilação! //aulas.Add("Equals e HashCode"); foreach (var aula in aulas) { Console.WriteLine(aula); //não exibe detalhes da aula, pois precisamos implementar ToString() } //Após implementarmos ToString() em Aula, a linha acima exibe corretamente a aula aulas.Sort(); ////Exceção Sem Tratamento: System.InvalidOperationException: //Falha ao comparar dois elementos na matriz. --->System.ArgumentException: //Pelo menos um objeto deve implementar IComparable. ImprimeAulas(aulas); //vamos ordenar de outro jeito agora aulas.Sort((este, outro) => este.Tempo.CompareTo(outro.Tempo)); ImprimeAulas(aulas); }
public int CompareTo(object obj) { Aula that = obj as Aula; return(this.titulo.CompareTo(that.titulo)); }