Exemple #1
0
        private static void Aula01()
        {
            List <int> lista = new List <int>();

            lista.Add(0);
            lista.Add(1);
            lista.Add(2);
            lista.Add(3);
            lista.Add(4);
            lista.Add(5);

            lista.AddRange(new int[] { 123, 456, 789, 10 });

            ListExtensoes.AdicionarVarios(lista, 1234, 5678, 9101112, 13);

            lista.AdicionarVarios(1597, 3574, 4679, 3157);

            foreach (var item in lista)
            {
                Console.WriteLine(item);
            }
        }
Exemple #2
0
        static void ListasSort()
        {
            //
            var cc            = new ContaCorrente(1112, 11674);
            var gerenciador   = new GerenciadorBonificacao();
            var gerenciadores = new List <GerenciadorBonificacao>();


            // Utilizando lists
            List <int> idades = new List <int>();

            idades.Add(1);
            idades.Add(5);
            idades.Add(14);
            idades.Add(25);
            idades.Add(38);
            idades.Add(61);

            idades.Remove(25);

            idades.AddRange(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 });

            ListExtensoes.AdicionarVarios(idades, 10, 11, 12, 13);

            //com método de extensão:
            idades.AdicionarVarios(14, 15, 16, 17);

            idades.AdicionarVarios <int>(18, 19, 20);

            for (int i = 0; i < idades.Count; i++)
            {
                Console.WriteLine(idades[i]);
            }

            idades.Sort();

            var nomes = new List <string>()
            {
                "Guilherme",
                "Luana",
                "Wellington",
                "Ana"
            };

            nomes.Sort();

            foreach (var item in nomes)
            {
                Console.WriteLine(item);
            }

            var contas = new List <ContaCorrente>()
            {
                new ContaCorrente(134, 57480),
                new ContaCorrente(125, 47480),
                new ContaCorrente(224, 97880),
                new ContaCorrente(789, 11180),
                null,
                new ContaCorrente(921, 87111),
                new ContaCorrente(164, 31480),
                null,
                null,
                new ContaCorrente(664, 67480),
                new ContaCorrente(121, 99990)
            };

            //contas.Sort(new ComparadorCCValores());
            //IOrderedEnumerable<ContaCorrente> contasord= contas.OrderBy(item => item.Agencia);


            var contasSemNulos = contas.Where(conta => conta != null);

            //IOrderedEnumerable<ContaCorrente> contasord = contasSemNulos.OrderBy(conta => conta.Agencia);

            var contasord = contas.Where(conta => conta != null).OrderBy(conta => conta.Numero);

            foreach (var conta in contasord)
            {
                Console.WriteLine($"Agencia: {conta.Agencia} Conta: {conta.Numero}");
            }
        }
Exemple #3
0
        static void Main(string[] args)
        {
            // Usando a classe List, em vez da classe Lista implementada
            List <int> inteiros = new List <int>();

            inteiros.Add(1);
            inteiros.Add(2);
            inteiros.Add(3);
            inteiros.Remove(3);
            Console.WriteLine(inteiros.Count);
            inteiros.AddRange(new int[] { 4, 5, 6 });

            // Criando uma extensão para List
            ListExtensoes.AdicionarVarios(inteiros, 1, 5687, 1987, 1567, 987);

            // Utilizando a extensão com a classe List estendida
            inteiros.AdicionarVarios(67, 45, 90);

            Console.WriteLine("Printando lista de inteiros: ");
            inteiros.PrintaList();

            // Testando método de extensão (de string, veja na classe) com argumento genérico
            string nome = "karina";

            nome.TesteGenerico <int>();
            nome.TesteGenerico <string>();

            int[] a = new int[] { 0, 1, 2 };
            int[] b = new int[] { 3, 4, 5 };

            Console.WriteLine("Printando arrays concatenadas: ");
            int[] resultado = a.Concatenar(b);
            resultado.PrintaArray();

            // Usando o tipo "var", o compilador entende que queremos armazenar o
            // nome do tipo que temos na expressão de atribuição, isto se chama
            // "Inferência de Tipo de Variável"
            var conta  = new ContaCorrente(344, 56456556);
            var contas = new List <ContaCorrente>();

            conta.Depositar(3443);

            //var idade; // Erro: "Variáveis de tipo implícito devem ser inicializadas"


            object outraConta = new ContaCorrente(344, 56456556);
            // Abaixo, não é permitido pois em object caberia uma referência a
            // qualquer classe, que não necessariamente teria o método Depositar
            //outraConta.Depositar(3443);

            var numeros = SomarVarios(1, 2, 3);

            Console.WriteLine("Somar vários: " + numeros);

            // Ordenação
            inteiros.Sort();

            Console.WriteLine("Printando lista ordenada de inteiros: ");
            inteiros.PrintaList();

            var nomes = new List <string>()
            {
                "Wellington",
                "Joana",
                "Bruna",
                "Ana"
            };

            nomes.Sort();
            Console.WriteLine("Printando lista ordenada de nomes: ");
            nomes.PrintaList();

            var novasContas = new List <ContaCorrente>()
            {
                new ContaCorrente(341, 57480),
                new ContaCorrente(342, 45678),
                new ContaCorrente(340, 48950),
                new ContaCorrente(290, 18950)
            };

            // Chama a implementação dada em IComparable:
            //novasContas.Sort(); // Lançaria uma InvalidOperationException
            // se não tivéssemos implementado a interface IComparable

            // Utilizando o comparador:
            //contas.Sort(new ComparadorContaCorrentePorAgencia());
            //novasContas.PrintaList();

            // Utilizando expressões lambda:
            IOrderedEnumerable <ContaCorrente> contasOrdenadas =
                novasContas.OrderBy(conta => conta.Numero);

            foreach (var item in contasOrdenadas)
            {
                Console.WriteLine($"Conta número {item.Numero}, ag. {item.Agencia}");
            }

            // Para se precaver contra objetos nulos, é possível expandir a expressão:

            //IOrderedEnumerable<ContaCorrente> contasOrdenadas =
            //    novasContas.OrderBy(conta => {
            //        if (conta == null)
            //        {
            //            return int.MaxValue; // Deixa no final, MinValue deixaria no começo
            //        }
            //        return conta.Numero;
            //    });

            // Exemplo com tipo sem propriedades
            var meses = new List <string>()
            {
                "janeiro", "fevereiro", "março", "abril", "maio", "junho", "julho", "agosto", "setembro", "outubro", "novembro", "dezembro"
            };

            meses.OrderBy(mes => mes);

            // Where (retorna um IEnumerable<T>):
            var maisContas = new List <ContaCorrente>()
            {
                new ContaCorrente(341, 66480),
                null,
                new ContaCorrente(340, 11111),
                null
            };

            Console.WriteLine("Filtra contas não nulas e ordena por nº de agência: ");
            var contasNaoNulas = maisContas
                                 .Where(conta => conta != null)
                                 .OrderBy(conta => conta.Agencia);

            foreach (var item in contasNaoNulas)
            {
                Console.WriteLine($"Conta número {item.Numero}, ag. {item.Agencia}");
            }
        }
Exemple #4
0
        static void ListaGenericaExtensaoLinqLambda()
        {
            //Testando lista generica, extensao de metodos, sort(), orderby,
            //Where, IComprable e IComparer

            Lista <int> idades = new Lista <int>();

            idades.Adicionar(8);
            idades.AdicionarVarios(4, 9, 6);
            int idadeSoma = 0;

            // int idadeSoma2 = null; Tipos de valor n'ao aceitam referencia nula

            for (int i = 0; i < idades.Tamanho; i++)
            {
                // Console.WriteLine($"Item na posição {i} :{idades[i]} ");
            }

            var outrasIdades = new List <int>();

            ListExtensoes.AdicionarVarios(outrasIdades, 1, 5687, 1987, 1567, 987);
            //A list do .Net não possui este metodo AdicionarVarios, estamos extendenda da nossa classe Lista<T>

            outrasIdades.AdicionarVarios(1, 8, 12, 14, 22, 18);//metodo generico
            outrasIdades.Sort();

            outrasIdades.Remove(12);
            for (int i = 0; i < outrasIdades.Count; i++)
            {
                Console.WriteLine($"Item na posição {i} :{outrasIdades[i]} ");
            }

            var nomes = new List <string>();

            nomes.AdicionarVarios("Daniela", "Bruna", "Julia", "Ana");
            nomes.Sort();

            for (int i = 0; i < nomes.Count; i++)
            {
                Console.WriteLine(nomes[i]);
            }

            var contas = new List <ContaCorrente>()
            {
                new ContaCorrente(234, 8000),
                new ContaCorrente(234, 1),
                null,
                new ContaCorrente(456, 800),
                new ContaCorrente(588, 9930)
            };
            //contas.Sort();
            // contas.Sort(new ComparadorContaCorrentePorAgencia());


            var contasOrdenadas = contas
                                  .Where(conta => conta != null)
                                  .OrderBy <ContaCorrente, int>(conta => conta.Numero);

            foreach (var conta in contasOrdenadas)
            {
                Console.WriteLine($"Conta número {conta.Numero}, ag. {conta.Agencia}");
            }
        }