Coleções em C# usando List

csharplogo

Nas linguagens de programação, o termo coleção é utilizado para definir estruturas capazes de agrupar objetos. Um simples vetor/array pode ser definido como uma coleção, neste caso, estática.

Em C# é facilmente possível criar coleções dinâmicas com o classe List<T>, disponível no namespace System.Collections.Generic.

Uma coleção gerada com List<T> fornece uma ótima opção, quando precisamos agrupar tipos de objetos (por exemplo, classes) de forma dinâmica e eficiente, e com métodos que possibilitam filtrar, ordenar e seus itens.

Vamos aos exemplos:

1 – Criando uma classe.

public class Pessoa
{
    int _id;

    public int Id
    {
        get { return _id; }
        set { _id = value; }
    }
    string _nome;

    public string Nome
    {
        get { return _nome; }
        set { _nome = value; }
    }

    public Pessoa()
    {
        _id = 0;
        _nome = &quot;&quot;;
    }

    public Pessoa(int id, string nome)
    {
        this._id = id;
        this._nome = nome;
    }
}

2 – Criando e manipulando uma coleção da classe Pessoa (deve referenciar o namespace System.Collections.Generic).

using System.Collections.Generic;

//Criando uma lista que agrupará objetos da classe Pessoa.
List&lt;Pessoa&gt; pessoas = new List&lt;Pessoa&gt;();

//Adicionando objetos (tipo Pessoa) na lista.
pessoas.Add(new Pessoa(1, &quot;Andre&quot;));
pessoas.Add(new Pessoa(2, &quot;Brenda&quot;));

//Percorrendo a lista.
foreach (Pessoa p in pessoas)
{
   Console.WriteLine(p.Nome);
}

//Localizando uma pessoa.
Pessoa pessoa = pessoas.Find(delegate(Pessoa p1) { return p1.Id == 2; });

//Localizando várias pessoas que contenham no nome as letras &quot;nd&quot; (neste caso, o retorno é uma outra List&lt;Pessoas&gt; com as pessoas localizadas).
List&lt;Pessoa&gt; pessoasLocalizadas = pessoas.FindAll(delegate(Pessoa p1) { return p1.Nome.Contains(&quot;nd&quot;); });


//Removendo um item da lista pela sua posição.
pessoas.RemoveAt(0);

Mais detalhes em http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx.

Até…

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios são marcados com *