static void Main(string[] args)
        {
            List <string> lista = new List <string>();

            lista.Add("Maria");
            lista.Add("Alex");
            lista.Add("Bob");
            lista.Add("Anna");
            lista.Insert(2, "Marco");

            foreach (string obj in lista)
            {
                Console.WriteLine(obj);
            }

            Console.WriteLine("List count: " + lista.Count);

            //string s1 = lista.Find(Teste);

            string s1 = lista.Find(x => x[0] == 'A');

            Console.WriteLine("First 'A': " + s1);

            string s2 = lista.FindLast(x => x[0] == 'A');

            Console.WriteLine("Last 'A': " + s2);

            int pos1 = lista.FindIndex(x => x[0] == 'A');

            Console.WriteLine("First position 'A': " + pos1);

            int pos2 = lista.FindLastIndex(x => x[0] == 'A');

            Console.WriteLine("Last position 'A': " + pos2);

            List <string> lista2 = lista.FindAll(x => x.Length == 5);

            Console.WriteLine("--------------");
            foreach (string obj in lista2)
            {
                Console.WriteLine(obj);
            }

            lista.Remove("Alex");
            Console.WriteLine("--------------");
            foreach (string obj in lista)
            {
                Console.WriteLine(obj);
            }

            lista.RemoveAll(x => x[0] == 'M');
            Console.WriteLine("--------------");
            foreach (string obj in lista)
            {
                Console.WriteLine(obj);
            }

            lista.RemoveAt(0);
            Console.WriteLine("--------------");
            foreach (string obj in lista)
            {
                Console.WriteLine(obj);
            }

            lista.Add("João");
            lista.Add("Jaqueline com J");
            lista.Add("Peterson");
            lista.Add("Alice");
            Console.WriteLine("--------------");
            foreach (string obj in lista)
            {
                Console.WriteLine(obj);
            }

            lista.RemoveRange(3, 2);
            Console.WriteLine("--------------");
            foreach (string obj in lista)
            {
                Console.WriteLine(obj);
            }
        }
예제 #2
0
        static void Main(string[] args)
        {
            List <string> list = new List <string>(); // Lista vazia !

            list.Add("Maria");                        // Adicionar na lista
            list.Add("Alex");
            list.Add("Bob");
            list.Add("Anna");
            list.Insert(2, "Marco");             // Escolho a Posição + Elemento

            foreach (string obj in list)
            {
                Console.WriteLine(obj);
            }

            Console.WriteLine("List count: " + list.Count);

            string s1 = list.Find(x => x[0] == 'A');

            Console.WriteLine("First 'A' : " + s1);


            string s2 = list.FindLast(x => x[0] == 'A');

            Console.WriteLine("Last 'A': " + s2);


            int pos1 = list.FindIndex(x => x[0] == 'A');

            Console.WriteLine("First position 'A': " + pos1);

            int pos2 = list.FindLastIndex(x => x[0] == 'A');

            Console.WriteLine("Last position 'A': " + pos2);


            List <string> list2 = list.FindAll(x => x.Length == 5);

            Console.WriteLine("-------------------");

            foreach (string obj in list2)
            {
                Console.WriteLine(obj);
            }

            list.Remove("Alex");
            Console.WriteLine("---------------");
            foreach (string obj in list)
            {
                Console.WriteLine(obj);
            }

            list.RemoveAll(x => x[0] == 'M');
            Console.WriteLine("---------------");
            foreach (string obj in list)
            {
                Console.WriteLine(obj);
            }

            list.RemoveAt(0);
            Console.WriteLine("-----------");
            foreach (string obj in list)
            {
                Console.WriteLine(obj);
            }

            list.RemoveRange(0, 1);             // posição e quantos elementos
            Console.WriteLine("-----------");
            foreach (string obj in list)
            {
                Console.WriteLine(obj);
            }
        }
예제 #3
0
        static void Main(string[] args)
        {
            List <string> list = new List <string>();

            list.Add("Maria");
            list.Add("Alex");
            list.Add("Bob");
            list.Add("Ana");
            list.Insert(2, "Marco");

            foreach (string obj in list)
            {
                Console.WriteLine(obj);
            }
            Console.WriteLine("List Count: " + list.Count);

            string s1 = list.Find(x => x[0] == 'A');

            Console.WriteLine("First 'A' " + s1);

            string s2 = list.FindLast(x => x[0] == 'A');

            Console.WriteLine("Last 'A' " + s2);

            int pos1 = list.FindIndex(x => x[0] == 'A');

            Console.WriteLine("First position " + pos1);

            int pos2 = list.FindLastIndex(x => x[0] == 'A');

            Console.WriteLine("Last position " + pos2);

            List <string> list2 = list.FindAll(x => x.Length == 5);

            Console.WriteLine("---------------------------------");

            foreach (string obj in list2)
            {
                Console.WriteLine(obj);
            }

            Console.WriteLine("---------------------------------------");
            list.RemoveAt("Alex");
            foreach (string obj in list)
            {
                Console.WriteLine(obj);
            }
            Console.WriteLine("-----------------------------------------");
            list.RemoveAll(x => x[0] == 'M');
            foreach (string obj in list)
            {
                Console.WriteLine(obj);
            }

            Console.WriteLine("-----------------------------------------");
            list.RemoveRange(2, 2);
            foreach (string obj in list)
            {
                Console.WriteLine(obj);
            }
        }
예제 #4
0
        static void Main(string[] args)
        {
            List <string> list = new List <string>();

            list.Add("Vinicius");
            list.Add("Teste");
            list.Add("Wesley");
            list.Add("Matheus");
            list.Insert(1, "Marco");

            foreach (string obj in list)
            {
                Console.WriteLine(obj);
            }

            Console.WriteLine("\nList count: " + list.Count);

            string s1 = list.Find(name => name[0] == 'M');

            Console.WriteLine("\nFirst 'M': " + s1);

            string s2 = list.FindLast(name => name[0] == 'M');

            Console.WriteLine("\nLast 'M': " + s2);

            int pos1 = list.FindIndex(name => name[0] == 'M');

            Console.WriteLine("\nFirst position: " + pos1);

            int pos2 = list.FindLastIndex(name => name[0] == 'M');

            Console.WriteLine("\nLast position: " + pos2);

            Console.WriteLine("\nNames with length 5: ");
            List <string> result = list.FindAll(name => name.Length == 5);

            foreach (string obj in result)
            {
                Console.WriteLine(obj);
            }

            Console.WriteLine("\nRemove 'Marco'");
            list.Remove("Marco");
            foreach (string obj in list)
            {
                Console.WriteLine(obj);
            }

            Console.WriteLine("\nRemove all");
            list.RemoveAll(name => name[0] == 'M');
            foreach (string obj in list)
            {
                Console.WriteLine(obj);
            }

            Console.WriteLine("\nRemove at");
            list.RemoveAt(2);
            foreach (string obj in list)
            {
                Console.WriteLine(obj);
            }

            Console.WriteLine("\nRemove range");
            list.RemoveRange(1, 1);
            foreach (string obj in list)
            {
                Console.WriteLine(obj);
            }
        }
예제 #5
0
        static void Main(string[] args)
        {
            List <string> list = new List <string>();

            // Add: adiciona ao final da lista;
            Console.WriteLine("Adiciona ao Final da Lista: ");
            list.Add("Maria");
            list.Add("Alex");
            list.Add("Bob");
            list.Add("Anna");

            foreach (string obj in list)
            {
                Console.WriteLine(obj);
            }
            Console.WriteLine();

            // Insert: insere onde você definir;
            Console.WriteLine("Insere onde for definido: ");
            list.Insert(2, "Marco");

            foreach (string obj in list)
            {
                Console.WriteLine(obj);
            }
            Console.WriteLine();

            // Count: mostra o tamanho da lista;
            Console.WriteLine("Mostra o tamanho da lista:");
            Console.WriteLine("Tamanho da lista: " + list.Count);
            Console.WriteLine();

            // Find: Encontra o primeiro elemento da lista que satisfaça um predicado:
            Console.WriteLine("Encontra o primeiro elemento: A");
            string s1 = list.Find(x => x[0] == 'A');

            Console.WriteLine("Find: " + s1);
            Console.WriteLine();

            // FindLast: Encontrar o último elemento da lista que satisfaça um predicado:
            Console.WriteLine("Encontra o último elemento: A");
            string s2 = list.FindLast(x => x[0] == 'A');

            Console.WriteLine("FindLast: " + s2);
            Console.WriteLine();

            // FindIndex: Encontrar primeira posição de elemento da lista que satisfaça um predicado:
            Console.WriteLine("Encontra a primeira POSIÇÃO: A");
            int pos1 = list.FindIndex(x => x[0] == 'A');

            Console.WriteLine("FindLastIndex A: " + pos1);
            Console.WriteLine();

            // FindLastIndex: Encontrar a última posição de elemento da lista que satisfaça um predicado:
            Console.WriteLine("Encontra a última POSIÇÃO: A");
            int pos2 = list.FindLastIndex(x => x[0] == 'A');

            Console.WriteLine("FindLastIndex A: " + pos2);
            Console.WriteLine();

            // FindAll: Filtrar a lista com base em um predicado:
            Console.WriteLine("Filtra por tamanho: 5");
            List <string> list2 = list.FindAll(x => x.Length == 5);

            foreach (string obj in list2)
            {
                Console.WriteLine("Filtar todos com tamanho 5 caracteres: " + obj);
            }
            Console.WriteLine("---------------------------------------------------");

            // Remover elementos da lista:

            // RemoveAt:
            list.RemoveAt(2);
            foreach (string obj in list)
            {
                Console.WriteLine("RemoveAt: Posição 2 " + obj);
            }
            Console.WriteLine("---------------------------------------------------");

            // Remove:
            list.Remove("Alex");
            foreach (string obj in list)
            {
                Console.WriteLine("Remove: Alex " + obj);
            }
            Console.WriteLine("---------------------------------------------------");

            // RemoveAll:
            list.RemoveAll(x => x[0] == 'M');
            foreach (string obj in list)
            {
                Console.WriteLine("Remove todos com inicial M: " + obj);
            }
            Console.WriteLine();

            // RemoveRange
            list.RemoveRange(2, 2);
            foreach (string obj in list)
            {
                Console.WriteLine("RemoveRange: " + obj);
            }
            Console.WriteLine("---------------------------------------------------");

            Console.ReadKey();
        }
예제 #6
0
        static void Main(string[] args)
        {
            List <string> list = new List <string>();

            list.Add("Maria");
            list.Add("Luiz");
            list.Add("Marília");
            list.Add("Alex");

            foreach (string obj in list)
            {
                Console.WriteLine(obj);
            }

            Console.WriteLine();
            Console.WriteLine();

            list.Insert(1, "Sobrou só eu");

            foreach (string obj in list)
            {
                Console.WriteLine(obj);
            }

            Console.WriteLine();
            Console.WriteLine();

            Console.WriteLine($"Quantidade de indivíduos: {list.Count}");

            string encontra1Posicao = list.Find(primeiraPosicao);

            Console.WriteLine($"Primeira posição com M: {encontra1Posicao}");

            string encontraUltimaPosicao = list.FindLast(ultimaPosicao);

            Console.WriteLine($"Ultima posição com M: {encontraUltimaPosicao}");

            Console.WriteLine();
            Console.WriteLine();

            int referenciaPrimeira = list.FindIndex(x => x[0] == 'A');

            Console.WriteLine($"Index da primeira Posição com A: {referenciaPrimeira}");

            int referenciaUltima = list.FindLastIndex(x => x[0] == 'A');

            Console.WriteLine($"Index da última Posição com A: {referenciaUltima}");

            Console.WriteLine();
            Console.WriteLine();

            List <string> filtraLista = list.FindAll(x => x.Length == 4);

            foreach (string valor in filtraLista)
            {
                Console.WriteLine(valor);
            }


            Console.WriteLine();
            Console.WriteLine();

            list.Remove("Luiz");

            foreach (string item in list)
            {
                Console.WriteLine(item);
            }

            Console.WriteLine();
            Console.WriteLine();

            list.RemoveAll(x => x[0] == 'M');
            foreach (string valor in list)
            {
                Console.WriteLine(valor);
            }

            Console.WriteLine();
            Console.WriteLine();


            list.RemoveAt(0);
            foreach (string valor in list)
            {
                Console.WriteLine(valor);
            }
        }
예제 #7
0
        static void Main(string[] args)
        {
            /*
             * --> Declarando uma lista
             * List<string> lista = new List<string>();
             * --> Declarando uma lista e adicionando valores na declaração
             * List<string> lista2 = new List<string> {"Ramon", "Drielly"};
             * --> Se fossemos adicionar um produto a lista, tereíamos que fazer da seguinte maneira
             * lista.Add(new Produto (xx, xx));
             */

            List <string> lista = new List <string>();

            //Adicionando elementos
            lista.Add("Macaco");
            lista.Add("Girafa");
            lista.Add("Elefante");
            lista.Add("Crocodilo");
            lista.Add("Esquilo");
            lista.Add("Abelha");
            lista.Add("Gafanhoto");
            lista.Add("Cavalo");
            lista.Add("Bufalo");
            lista.Add("Rinoceronte");

            //Adicionando um elemento na posição 2
            lista.Insert(2, "Aguia");
            Console.WriteLine("*******************************************************");
            foreach (string obj in lista)
            {
                Console.WriteLine(obj);
            }
            Console.WriteLine("*******************************************************");
            //Tamanho da lista Count
            Console.WriteLine("Tamanho da lista: " + lista.Count);
            Console.WriteLine("*******************************************************");
            //Encontrar a primeira ocorrencia que começa com a letra E usando lambda
            string nome1 = lista.Find(X => X[0] == 'E');

            Console.WriteLine("Primeiro nome que começa com a letra E: " + nome1);
            Console.WriteLine("*******************************************************");
            //Encontrar a última ocorrencia que começe com a letra E usando lambda
            string nome2 = lista.FindLast(x => x[0] == 'E');

            Console.WriteLine("Ultimo nome que começa com a letra E: " + nome2);
            Console.WriteLine("*******************************************************");
            //Encontrar a primeira posição que começa com a letra E
            int posicao1 = lista.FindIndex(x => x[0] == 'E');

            Console.WriteLine("Primeira posição que começa com a letra E: " + posicao1);
            Console.WriteLine("*******************************************************");
            //Encontrar a última posição que começa com a letra E
            int posicao2 = lista.FindLastIndex(x => x[0] == 'E');

            Console.WriteLine("Última posição que começa com a letra E: " + posicao2);
            Console.WriteLine("*******************************************************");
            //Vamos filtrar os elementos e separar todos os elementos que tenham o tamanho de 6 caractere usando o FindAll
            List <string> listaSeis = lista.FindAll(x => x.Length == 6);

            Console.WriteLine("Lista com nomes que contenham seis caractere:");
            foreach (string obj in listaSeis)
            {
                Console.WriteLine(obj);
            }
            Console.WriteLine("*******************************************************");
            //Removendo o elemento Gafanhoto
            lista.Remove("Gafanhoto");
            Console.WriteLine("Gafanhoto removido da lista.");
            //Removendo todos os animais que começam com a letra E
            lista.RemoveAll(x => x[0] == 'E');
            Console.WriteLine("Todos os animais que começam com a letra E foram removidos.");
            //Removendo o animal na posição 3
            lista.RemoveAt(3);
            Console.WriteLine("Animal na posição 3 foi removido.");
            //removendo 3 animais a partir da posição 1
            lista.RemoveRange(1, 3);
            Console.WriteLine("Removido 3 animais a partir da posição 1.");
            Console.WriteLine("*******************************************************");
            Console.WriteLine("Elementos que sobraram na lista:");
            foreach (string obj in lista)
            {
                Console.WriteLine(obj);
            }
            Console.ReadLine();
        }
예제 #8
0
        static void Main(string[] args)
        {
            /*
             * Lista é uma estrutura de dados homogenea (Dados do mesmo tipo, ordenada, inicia vazia e vai sendo preenchida, cada elemento ocupa um nó da lista)
             * Classe : List, Namespane: System.Collections.Generic
             * Vantagens: Tamano variavel e Facilidade para realizar inserções e declaracoes
             * Desvantagens: Acesso sequencial aos elementos*
             */

            /*
             * List<string> list = new List<string>();
             * List<string> list2 = new List<string> { "Maria", "Roberto" };
             */

            List <string> list = new List <string>();

            list.Add("Maria");
            list.Add("Alex");
            list.Add("Bob");
            list.Add("Ana");
            list.Insert(2, "Marco");

            foreach (string obj in list)
            {
                Console.WriteLine(obj);
            }
            Console.WriteLine("List count:" + list.Count());

            string s1 = list.Find(Test); //or expression lambda ' string s1 = list.Find(x => x[0] == 'A');' find Procura a primeira posicao que comeca com tal caracter

            Console.WriteLine("First 'A'" + s1);

            string s2 = list.FindLast(x => x[0] == 'A'); // FindLast procura a ultima posicao de quem comeca com a letra tal

            Console.WriteLine("Last 'A'" + s2);

            int pos1 = list.FindIndex(x => x[0] == 'A'); //procura a primeira posicao com a letra tal

            Console.WriteLine("First position 'A'" + pos1);

            int pos2 = list.FindLastIndex(x => x[0] == 'A'); // procura a ultima posicao com a letra tal

            Console.WriteLine("Last position 'A'" + pos2);

            List <string> list2 = list.FindAll(x => x.Length == 5);//procura apena de acordo com a condicao

            Console.WriteLine("------------------------");
            foreach (string obj  in list2)
            {
                Console.WriteLine(obj);
            }

            Console.WriteLine("------------------------");
            list.RemoveRange(2, 2);
            foreach (string obj in list)
            {
                Console.WriteLine(obj);
            }

            Console.WriteLine("------------------------");
            list.RemoveAt(1);
            foreach (string obj in list)
            {
                Console.WriteLine(obj);
            }

            Console.WriteLine("------------------------");
            list.Remove("Alex");

            foreach (string obj in list)
            {
                Console.WriteLine(obj);
            }


            Console.WriteLine("------------------------");
            list.RemoveAll(x => x[0] == 'M');
            foreach (string obj in list)
            {
                Console.WriteLine(obj);
            }
        }
예제 #9
0
        static void Main(string[] args)
        {
            //declara e instancia a lista
            List <string> list = new List <string>();

            //método que adiciona itens ao final da lista
            list.Add("Mateus");
            list.Add("Jake");
            list.Add("Altair");
            list.Add("Alex");
            list.Add("Bob");
            list.Add("Ana");

            //método que adiciona itens à lista com base em uma posição informada, sem remover o valor já existente na posição
            list.Insert(0, "Teste");

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

            Console.WriteLine();

            //método que retorna o tamanho da lista
            Console.WriteLine($"Tamanho da lista: {list.Count}");
            Console.WriteLine();

            //método que encontra o primeiro item da lista com base (corresponde) em um predicado
            string s1 = list.Find(Teste); //ou s1 = list.Find(x => x[0] == 'A');

            Console.WriteLine($"Primeira ocorrência que inicia com a letra A: {s1}");

            //método que encontra o último item da lista com base (corresponde) em um predicado
            string s2 = list.FindLast(x => x[0] == 'A');

            Console.WriteLine($"Última ocorrência que inicia com A: {s2}");
            Console.WriteLine();

            //método que retorna o índice da primeiro item da lista com base (corresponde) em um predicado
            int pos1 = list.FindIndex(x => x[0] == 'A');

            Console.WriteLine($"Primeiro índice: {pos1}");

            //método que retorna o índice do último item da lista com base (corresponde) em um predicado
            int pos2 = list.FindLastIndex(x => x[0] == 'A');

            Console.WriteLine($"Segundo índice: {pos2}");
            Console.WriteLine();

            //realizando filtro na lista
            List <string> filtro = list.FindAll(x => x[0] == 'A');

            Console.WriteLine("Lista filtrada: ");
            foreach (var item in filtro)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine();

            //remove um item informado
            list.Remove("Jake");
            foreach (var item in list)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine();

            //remove todos os itens que corresponde à um predicado
            list.RemoveAll(x => x[0] == 'M');
            foreach (var item in list)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine();

            //remove o item em uma posição informada
            list.RemoveAt(2);
            foreach (var item in list)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine();

            //remove os elementos de uma faixa (um intervalo)
            //primeiro parametro = posição & segundo parâmetro = contagem
            list.RemoveRange(0, 2); //"a partir da posição zero, remove dois itens"
            foreach (var item in list)
            {
                Console.WriteLine(item);
            }
        }
예제 #10
0
        static void Main(string[] args)
        {
            List <string> lista = new List <string>();

            lista.Add("Maria");
            lista.Add("Alex");
            lista.Add("Jose");
            lista.Add("Antonio");
            lista.Add("MArcos");
            lista.Add("Final");
            lista.Insert(6, "juose");

            foreach (string obj in lista)
            {
                Console.WriteLine(obj);
            }


            Console.WriteLine("__________________________");
            Console.WriteLine("List Count: " + lista.Count);
            Console.WriteLine("__________________________");

            string s1 = lista.Find(x => x[0] == 'A');

            Console.WriteLine("Primeiro A a ser encontrado é o " + s1);
            Console.WriteLine("___________________________");
            string s2 = lista.FindLast(x => x[0] == 'A');

            Console.WriteLine("Ultumo A a ser encontrado é o " + s2);
            Console.WriteLine("___________________________");

            int pos1 = lista.FindIndex(x => x[0] == 'A');

            Console.WriteLine("Primeira posição começanndo com a: " + pos1);
            Console.WriteLine("___________________________");

            int pos2 = lista.FindLastIndex(x => x[0] == 'A');

            Console.WriteLine("Ultima posição começanndo com a: " + pos2);
            Console.WriteLine("___________________________");

            List <string> lista2 = lista.FindAll(x => x.Length == 5);

            foreach (string obj2 in lista2)
            {
                Console.WriteLine(obj2);
            }

            Console.WriteLine("___________________________");

            lista.RemoveRange(2, 2);
            foreach (string obj in lista)
            {
                Console.WriteLine(obj);
            }

            //lista.RemoveAt(6);
            //foreach (string obj in lista) {
            //    Console.WriteLine(obj);
            //}

            //lista.Remove("Alex");
            //foreach (string obj in lista) {
            //    Console.WriteLine(obj);
            //}

            //Console.WriteLine("___________________________");

            //lista.RemoveAll(x => x[0] == 'M');
            //foreach (string obj in lista) {
            //    Console.WriteLine(obj);
            //}
            //Console.WriteLine("___________________________");
        }
        static void Main(string[] args)
        {
            // Iniciando com valor List<string> list2 = new List<string> { "Maria", "Alex" };

            List <string> list = new List <string>();

            // Adicionando a lista

            list.Add("1 Item");
            list.Add("2 Item");
            list.Add("3 Item");
            list.Add("4 Item");
            list.Add("5 Item");
            list.Add("30 Item");
            list.Add("31 Item");
            list.Add("32 Item");
            list.Insert(0, "0 Item");

            foreach (string item in list)
            {
                Console.WriteLine(item);
            }

            Console.WriteLine("list.Count: " + list.Count);

            string s1 = list.Find(x => x[0] == '3');

            Console.WriteLine("First '3': " + s1);

            string s2 = list.FindLast(x => x[0] == '3');

            Console.WriteLine("Last '3': " + s2);

            int pos1 = list.FindIndex(x => x[0] == '3');

            Console.WriteLine("First Index '3': " + pos1);

            int pos2 = list.FindLastIndex(x => x[0] == '3');

            Console.WriteLine("Last Index '3': " + pos2);

            List <string> listFiltrada = list.FindAll(x => x.Length > 6);

            Console.WriteLine("--------------------------------------------------------------------------");
            foreach (string item in listFiltrada)
            {
                Console.WriteLine(item);
            }

            // Removendo da lista
            Console.WriteLine("--------------------------------------------------------------------------");

            list.Remove("1 Item");
            list.RemoveAll(x => x.Length > 6);
            list.RemoveAt(0);
            list.RemoveRange(2, 2);

            foreach (string item in list)
            {
                Console.WriteLine(item);
            }
        }
예제 #12
0
        static void Main(string[] args)
        {
            /*
             * LISTAS É UMA ESTRUTURA DE DADOS:
             * - Homogênia (dados do mesmo tipo)
             * - Ordenada (Elementos acessados por meio de posições)
             * - Iniciada Vazia, e seus elementos são alocados sob demanda.
             * - Cada elemento ocupa um "nó"(ou nodo) da lista.
             *
             * Esse nameespace é obrigatório para que funcione a List:
             * Nameespace: System.Collections.Generic
             *
             * VANTAGENS:
             * - Tamanho variável.
             * - Facilidade para se realizar inserções e deleções.
             *
             * DESVANTAGENS:
             * - Acesso sequencial aos elementos.
             */

            /*Essa é maneira de declarar a lista e instância-la:*/
            List <string> list1 = new List <string>();

            /*Nesse exemplo simples foi instânciada uma lista vazia, mas
             * vale resaltar que na linguagem C# é possível declara-la,
             * instância-la e já tribuir valores a ela, exemplo:*/
            List <string> list2 = new List <string> {
                "Maria", "Alex", "Bob"
            };

            /*
             * COMANDOS DE LIST
             * - Inserir elemento na lista: Add, Insert
             * - Tamanho da lista: Count
             * - Encontrar primeiro ou último elementos da lista que
             * satisfaça um predicado: list.Find, list.FindLast
             * - Encontrar primeira ou última posição de elemento da lista que
             * satisfaça um predicado: list.FindIdex, list.FindLastIndex
             * - Filtrar a lista com base em um predicado: list.FindAll
             * - Remover elementos da lista: Remove, RemoveAll, RemoveAt, RemoveRange
             *
             * ASSUNTOS PENDENTES ENVOLVIDOS:
             * - Generics
             * - Predicados (lambda)
             */

            list1.Add("Maria"); /*O comando "Add" Adiciona o elemento na
                                 * lista, sempre na última posição da lista
                                 * de forma sequencial*/
            list1.Add("Alex");
            list1.Add("Bob");
            list1.Add("Anna");
            list1.Add("David");
            list1.Add("Adriana");
            list1.Add("Reginaldo");


            foreach (string obj in list1)/*Imprime os elementos da lista*/
            {
                Console.WriteLine(obj);
            }

            Console.WriteLine();
            Console.WriteLine("------------------------");
            Console.WriteLine();

            list1.Insert(2, "Marco");     /*O comando "Insert" Adiciona um
                                           * elemento na posição que for especificada, nesse exemplo foi
                                           * na posição 2. Lembrando que como no vertor, a primeira
                                           * posição começa na posição 0*/

            foreach (string obj in list1) /*Imprime os elementos da lista*/
            {
                Console.WriteLine(obj);
            }

            Console.WriteLine();
            Console.WriteLine("------------------------");
            Console.WriteLine();

            Console.WriteLine("Tamando da lista: " + list1.Count);/*O comando "Count"
                                                                   * mostra o tamanho atual da lista*/

            Console.WriteLine();
            Console.WriteLine("------------------------");
            Console.WriteLine();

            string s1 = list1.Find(x => x[0] == 'A'); /*O comando Find espera um PREDICADO como
                                                       * argumento, esse PREDICADO é uma função e tem haver com o assunto
                                                       * pendente LAMBDA. O conceito de PREDICADO é uma função que pega um
                                                       * valor e retorna verdadeiro ou falso conforme a lógica implementada
                                                       * na função, não sendo obrigatório a criação da função separadamente
                                                       * para que funcione o teste, entrando o assundo da função LAMBDA que
                                                       * faz o teste automaticamente.
                                                       * A expressão LAMBDA se le da seguinte forma: x => x[0] == 'A'
                                                       * x que é um elemento, tal que x na posição 0 (primeiro posição que satisfaça a condição
                                                       * a seguir) é igual ao A. Sendo o "s" um parâmetro de entrada para o teste lambda.
                                                       * Esse expressão LAMBDA resumida de teste de uma condição é chamada de expressão anõnima
                                                       * sendo uma forma simples de definir uma fuñção de teste sem a necessidade de criar
                                                       * uma função separadamente para testar a lógica.*/

            /*static bool Test(string s) Função que irá retornar um booleano
             *                          (verdadeiro), somente se a condição
             *                          especificada for verdadeira, seria
             *                          necessario criar essa função se não
             *                          fosse utilizada a função LAMBDA.
             * {
             *  return s[0] == 'A';
             * }*/

            Console.WriteLine("Primeiro Elemento da lista que começa com A: " + s1);

            Console.WriteLine();
            Console.WriteLine("------------------------");
            Console.WriteLine();

            string s2 = list1.FindLast(x => x[0] == 'A'); /*Mesmo conceito do exemplo acima
                                                           * porém com a diferença que o comando Find.Last retorna o último valor que atenda a
                                                           * condição especificada na função LAMBDA*/

            Console.WriteLine("Último Elemento da lista que começa com A: " + s2);

            Console.WriteLine();
            Console.WriteLine("------------------------");
            Console.WriteLine();

            int pos1 = list1.FindIndex(x => x[0] == 'M'); /*O comando FindIndex retorna a primeira
                                                           * posição que satisfaça a condição da função LAMBDA*/

            Console.WriteLine("Primeira posição da lista que começa com M: " + pos1);

            Console.WriteLine();
            Console.WriteLine("------------------------");
            Console.WriteLine();

            int pos2 = list1.FindLastIndex(x => x[0] == 'M'); /*Mesmo conceito do exemplo acima
                                                               * porém com a diferença que o comando Find.LastIndex retorna o último valor que atenda a
                                                               * condição especificada na função LAMBDA*/

            Console.WriteLine("Última posição da lista que começa com M: " + pos2);

            Console.WriteLine();
            Console.WriteLine("------------------------");
            Console.WriteLine();

            List <string> list3 = list1.FindAll(x => x.Length == 5); /*O comando FindAll é utilizado
                                                                      * para filtrar a lista contendo apenas os elementos que satisfaca o predicado especificado
                                                                      * na função LAMBDA acima. Ou seja é possível criar uma nova lista que possibilita incluir
                                                                      * apenas os elementos que satisfaçam o pridicado da função LAMBDA. No exemplo foi filtrado
                                                                      * apenas os elemento que possui 5 caracteres de tamanho(Length).*/

            Console.WriteLine("Nova lista que possui os elementos com 5 caracteres: ");
            Console.WriteLine();

            foreach (string obj in list3) //Percorre todos os elementos da lista
            {
                Console.WriteLine(obj);
            }

            Console.WriteLine();
            Console.WriteLine("------------------------");
            Console.WriteLine();

            list1.Remove("Alex"); /*O comando Remove remove o elemento especificado nos parâmetros da lista em questão*/

            Console.WriteLine("Nova lista que removeu o elemento especificado no comando Remove: ");
            Console.WriteLine();

            foreach (string obj in list1) //Percorre todos os elementos da lista
            {
                Console.WriteLine(obj);
            }

            Console.WriteLine();
            Console.WriteLine("------------------------");
            Console.WriteLine();

            list1.RemoveAll(x => x[0] == 'M'); /*O comando RemoveAll espera como parâmetro um predicado e ele remove
                                                * todos os elementos que atendam a condição da função LAMBDA do predicado. Vale ressaltar que
                                                * se for definido para remover um elemento que não existe na lista, o comando simplismente não
                                                * fará nenhuma modificação.*/

            Console.WriteLine("Nova lista que removeu todos os elementos que atendeu o pridicado especificado do comando RemoveAll: ");
            Console.WriteLine();

            foreach (string obj in list1) //Percorre todos os elementos da lista
            {
                Console.WriteLine(obj);
            }

            Console.WriteLine();
            Console.WriteLine("------------------------");
            Console.WriteLine();

            list1.RemoveAt(1); /*O comando RemoveAt remove um elemento pela posição dele que ele se e
                                * não pelo seu valor */

            Console.WriteLine("Nova lista que removeu o elemento da posição especificada no comando RemoveAt: ");
            Console.WriteLine();

            foreach (string obj in list1) //Percorre todos os elementos da lista
            {
                Console.WriteLine(obj);
            }

            Console.WriteLine();
            Console.WriteLine("------------------------");
            Console.WriteLine();

            list1.RemoveRange(1, 2); /*O comando RemoveRange remove um elemento pela faixa, ele espera como parâmetro a
                                      * posição que será inciada a remoção e uma contagem de quantos elementos serão removidos.*/

            Console.WriteLine("Nova lista que removeu os elementos apartir da posição especificada no comando RemoveRange: ");
            Console.WriteLine();

            foreach (string obj in list1) //Percorre todos os elementos da lista
            {
                Console.WriteLine(obj);
            }
        }
예제 #13
0
        static void Main(string[] args)
        {
            List <string> lista = new List <string>();

            //Inserir Elemento na Lista (Add/Insert)
            Console.WriteLine("---------------------");
            Console.WriteLine("Inserir Elemento na Lista (Add/Insert)");
            lista.Add("Sergio");
            lista.Add("Luis");
            lista.Add("Coutinho");
            lista.Add("Ferreira");
            lista.Insert(2, "Marcela");
            Console.WriteLine("---------------------");
            foreach (var item in lista)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine();


            //Contar tamanho da Lista
            Console.WriteLine("---------------------");
            Console.WriteLine("Contar tamanho da Lista");
            Console.WriteLine("Tamanho da itens da lista.: {0}", lista.Count);
            Console.WriteLine("---------------------");
            Console.WriteLine();

            //Encontrar PRIMEIRA ou ULTIMA ELEMENTOS da lista que satisfaça um predicado (Usando expressao Lambda)
            //Lambda
            Console.WriteLine("---------------------");
            Console.WriteLine("Encontrar PRIMEIRA ou ULTIMA ELEMENTOS da lista que satisfaça um predicado (Usando expressao Lambda)");
            string s1 = lista.Find(x => x[0] == 'M');
            string s2 = lista.FindLast(x => x[0] == 'F');

            Console.WriteLine("First M.: {0}", s1);
            Console.WriteLine("Last F.: {0}", s2);
            Console.WriteLine("---------------------");
            Console.WriteLine();

            //Encontrar PRIMEIRA ou ULTIMA POSIÇÃO da lista que satisfaça um predicado (Usando Lambda)
            Console.WriteLine("---------------------");
            Console.WriteLine("Encontrar PRIMEIRA ou ULTIMA POSIÇÃO da lista que satisfaça um predicado (Usando Lambda)");
            int n1 = lista.FindIndex(x => x[0] == 'S');
            int n2 = lista.FindLastIndex(x => x[0] == 'M');

            Console.WriteLine(n1);
            Console.WriteLine(n2);
            Console.WriteLine("---------------------");
            Console.WriteLine();

            //Filtar a Lista com base em um Predicado
            Console.WriteLine("---------------------");
            Console.WriteLine("Filtar a Lista com base em um Predicado");
            List <string> lista2 = lista.FindAll(x => x.Length == 7);

            foreach (var obj in lista2)
            {
                Console.WriteLine(obj);
            }
            Console.WriteLine("---------------------");
            Console.WriteLine();


            //Remover Elementos da Lista
            Console.WriteLine("---------------------");
            Console.WriteLine("Remover Elementos da Lista");
            //lista.Remove("Luis");
            //lista.RemoveAll(x => x[0] == 'S');
            // lista.RemoveAt(1);
            lista.RemoveRange(0, 2);
            foreach (var obj in lista)
            {
                Console.WriteLine(obj);
            }
            Console.WriteLine("---------------------");
            Console.WriteLine();
        }