Category Archives: A Magia das Classes

A Magia das Classes – List

Overview

As Listas agem como arrays dinâmicos no C#. Eles podem crescer conforme a necessidade, quando elementos forem adicionados a ele. Aprenda como trabalhar com esta classe e seus métodos. Vamos lá:

Definição

A List é uma classe utilizada para implementar um tipo ideal para adicionar dados dinamicamente.

Eles são considerados genéricos quando utilizamos <e> na declaração do List.

A Localização

No. NET FW, localiza-se no namespace System.Collections.Generic.

Chega de Teoria!

Adicionar valores

using System;
using System.Collections.Generic;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
           var list = new List<int> {1, 2, 3, 4};
        }
    }
}

Para iniciar, aqui estou criando uma lista de valores (int) e adiciono alguns valores ele.

namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            new List<int> {1, 2, 3, 4};
        }
    }
}

Aqui uma forma ainda mais resumida.

class Program
{
    static void Main ()
    {
    List<int> list = new List<int>();
    list.Add(1);
    list.Add(2);
    list.Add(3);
    list.Add(4);
    }
}

Além dessa maneira menos econômica, porém bem ditática. Note a utilização do método Add().

Loops

Uma operação comum quando trabalhamos com List é percorrer uma lista.

    class Program
    {
        static void Main()
        {
            List<int> minhalista = new List<int>();
            minhalista.Add(1);
            minhalista.Add(2);
            minhalista.Add(3);
            minhalista.Add(4);

            foreach (int primos in minhalista)
            {
                Console.WriteLine(primos);
            }

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

Aqui estou percorrendo uma Lista, primeiro utilizo um foreach e depois um for.

A sintaxe é a mesma que para um array, exceto o uso do COUNT.

Agora uma versão mais elegante:

    class Program
    {
        static void Main()
        {
            var minhalista = new List<int> {1, 2, 3, 4};

            Console.WriteLine("Usando o foreach \n");

            foreach (var primos in minhalista)
              Console.WriteLine(primos);

            Console.WriteLine("\nUsando o for \n");

            for (var i = 0; i < minhalista.Count; i++)
                Console.WriteLine(minhalista[i]);
        }
    }

Note a utilização do foreach e do for junto com o var.

Clear list

Agora o método Clear, juntamente com a propriedade Count, para apagar todos os elementos da Lista.

    class Program
    {
        static void Main()
        {
            List<bool> list = new List<bool>();
            list.Add(true);
            list.Add(false);
            list.Add(true);
            list.Add(false);

            Console.WriteLine(list.Count);// 4

            list.Clear();
            Console.WriteLine(list.Count);// 0
        }
    }

Note que antes de chamar o Clear, a lista contém 4 elementos, após invocar o Clear, a quantidade de elementos é zerada ou também podemos atribuir ao List o valor null em vez de invocar o Clear, com desempenho similar. No entanto, depois de atribuir null, devemos chamar novamente o construtor.

Agora a versão melhorada:

    class Program
    {
        static void Main()
        {
            var list = new List<bool> {true, false, true, false};
            Console.WriteLine(list.Count); //4

            list.Clear();
            Console.WriteLine(list.Count); //0
            Console.ReadKey();
        }
    }