static void ExibirRelatorio(GerenciarProdutos gp) { Console.WriteLine(" Deseja exibir relatorio de (1-Lista simples) (2-Lista Duplamente Vinculada) (3- Fila): \n"); int op = int.Parse(Console.ReadLine()); if (op == 1) { ExibirColecao(gp.RetornarListaSimples()); //Console.WriteLine(" Lista simples vazia !"); } else { if (op == 2) { ExibirColecao(gp.RetornarListaDuplamenteVinculada()); //Console.WriteLine(" Lista duplamente vinculada vazia !"); } else { ExibirFila(gp.RetornarFila()); //Console.WriteLine(" Fila vazia !"); } } }
static void OrdenarColecao(GerenciarProdutos gp) { Console.WriteLine(" Deseja Ordenar (1-Lista simples) (2-Lista Duplamente Vinculada) (3- Fila): \n"); int op = int.Parse(Console.ReadLine()); if (op == 1) { List <Produto> listaSimples = gp.RetornarListaSimples(); op = OpcaoOrdenacao(); if (op == 1) { listaSimples.Sort(); MostrarColecao(listaSimples); } else { if (op == 2) { listaSimples.Sort(new OrdenarColecaoPeloPreco()); MostrarColecao(listaSimples); /*O método de ordenação Sort atraves da instancia da classe OrdenarColecaoPeloPreco * acessa o método Compare(Produto produtoAtual, Produto produtoOutro) que recebe dois objetos * que serão comparados. O proprio método Sort passa esses dois objetos que serão comparados da lista.*/ } else { listaSimples.Sort(new OrdenarColecaoPelaQuantidade1()); MostrarColecao(listaSimples); /* * O método de ordenação Sort(IComparer<Produto> comparer) recebe um objeto do tipo IComparer<Produto> * a variavel comparer pode fazer referencia a um objeto da classe OrdenarColecaoPelaQuantidade1 com uso de * polimorfismo uma vez que essa classe implementa a interface IComparer<> e obrigatoriamente implementou o * método Compare(). */ } } } else { if (op == 2) { Console.WriteLine(" Ordenar Lista Duplamente Vinculada \n"); op = OpcaoOrdenacao(); if (op == 1) { LinkedList <Produto> listaDuplamenteVinculada = gp.RetornarListaDuplamenteVinculada(); //listaDuplamenteVinculada. } else { } } else { op = OpcaoOrdenacao(); } } }