Você está na página 1de 17

INSTITUTO SUPERIOR DOM BOSCO

Módulo: Programação C#

Tema: Listas em C#

Formador:
MSc.Lino Alfredo de Castro

Maputo : 25.08.21 castro_lac@yahoo.com 1


Listas em C#
List <T> é uma coleção de objetos fortemente tipados que podem ser acessados por
índice e tendo métodos para classificar, pesquisar e modificar a lista.
É a versão genérica da ArrayList incluída no namespace System.Collection.Generic.

Características de List<T>

 List <T> equivalente ao ArrayList, que implementa IList <T>.


 Os elementos podem ser adicionados usando os métodos:
 Add (), AddRange () ou a sintaxe do inicializador de coleção
 Os elementos podem ser acessados passando um índice, por exemplo myList [0].
 List <T> tem um desempenho mais rápido e menos sujeito a erros do que
ArrayList.

25/08/2021 2
Estrutura das List<T>

25/08/2021 3
Criação da Lista

List <T> é uma coleção genérica, portanto, é preciso especificar um parâmetro de tipo
para o tipo de dados que ele pode armazenar.

public class List<T> :


System.Collections.Generic.ICollection<T>,
System.Collections.Generic.IEnumerable<T>,
System.Collections.Generic.IList<T>,
System.Collections.Generic.IReadOnlyCollection<T>,
System.Collections.Generic.IReadOnlyList<T>,
System.Collections.IList

4
Adição de Elementos Na Lista
Para adicionar elementos utilize-se a função Add()

List<int> nrsPrimos= new List<int>();

nrsPrimos.Add(1);
nrsPrimos.Add(3);
nrsPrimos.Add(5);
nrsPrimos.Add(7);

var cities = new List<string>(){


“Maputo“,
“Xai-Xai“,
“Chimio",
“Pemba“,
};

55
Adicão do Array na Lista

Para adicionar todos os elementos de uma matriz ou outra coleção na Lista , utiliza-se
o método AddRange () .

Sintaxe: AddRange (): void AddRange (coleção IEnumerable <T>)

string[] cities = new string[3]{ "Mumbai", "London", "New York" };

var popularCities = new List<string>(); // adding an array in a List


popularCities.AddRange(cities);

var favouriteCities = new List<string>(); // adding a List


favouriteCities.AddRange(popularCities);

6
Acessar Elementos da Lista

Uma lista pode ser acessada por um índice, um loop for / foreach e através de
consultas LINQ.
Os índices de uma lista assim como de arrays começam do zero.

7
Acessar Elementos da Lista
O List <T> implementa a interface IEnumerable. Portanto, podemos consultar uma
lista usando a sintaxe de consulta LINQ ou a sintaxe de método, conforme mostrado
abaixo.

8
Inserir Elementos da Lista

O método Insert () é utilizado para inserir um elemento na coleção List <T> no


índice especificado.
Sintaxe: void Insert (int index, item T);

9
Remover Elementos da Lista
O método Remove () é utilizado para excluir um elemento na coleção List <T> no
índice especificado.
Use o método RemoveAt () para remover um elemento do índice especificado. Se
nenhum elemento no índice especificado, a ArgumentOutOfRangeException será
lançada.
Sintaxe: bool Remove(T item)
void RemoveAt(int index)

10
Verificação de Elementos da Lista
O método Contains () verifica se um elemento X, Y existe ou não
na coleção List <T>.

11
Classe e Listas

Tendo uma classe Pessoa definida com o seguinte código:

public class Pessoa {


public Pessoa() {}
public string Nome { get; set; }
public int Idade { get; set; } public Pessoa(int idade, string nome)
{
this.Idade = idade; this.Nome = nome;
}
}

12
Classe e Listas
Para criar uma lista de objetos Pessoa e listar o seu conteúdo, temos que:
using System;
using System.Collections.Generic;
class Program {
static List<Pessoa> pessoas;
static void Main(string[] args) {
pessoas = new List<Pessoa>(); // Criação da Lista
pessoas.Add(new Pessoa(50, "Macoratti"));
pessoas.Add(new Pessoa(25, "Jefferson"));
pessoas.Add(new Pessoa(45, "Miriam"));
pessoas.Add(new Pessoa(null, null));
foreach (Pessoa p in pessoas) { Console.WriteLine(p.Nome + " " + p.Idade);
}
Console.ReadKey();
}
}

13
Classe e Listas

A classe List<T> também fornece uma série de métodos que vão facilitar muito
sua vida. Dentre eles eu destaco os métodos : ForEach, FindAll, Find e Sort.

ForEach nos permite acessar cada item na lista iterando sobre ele;
FindAll permite procurar por objetos na lista que correspondem a uma condição
específica;
Find permite procurar por um elemento na lista que corresponde a uma condição
específica retornando a primeira ocorrência;
Sort permite classificar os objetos da lista;

14
ForEarch

1- Lista não ordenada


Para obter lista não ordenada basta percorrer a lista usando um ForEach.

static void ListaNaoOrdenada() {


Console.WriteLine("Lista não ordenada");
pessoas.ForEach(delegate (Pessoa p) {
Console.WriteLine(String.Format("{0} {1}", p.Idade, p.Nome));
});
}

15
Sort
O método Sort() classifica os elementos em toda lista usando o comparador padrão

2- Lista ordenada por nome

static void ListaOrdenadaPorNome() {

Console.WriteLine("Lista Ordenada por Nome");

pessoas.Sort(delegate (Pessoa p1, Pessoa p2) {

return p1.Nome.CompareTo(p2.Nome); });

pessoas.ForEach(delegate (Pessoa p) {

Console.WriteLine(String.Format("{0} {1}", p.Idade, p.Nome)); }); }

16
Bibliografia

CAMARA, FABIO, Dominando o Visual Studio .NET com C#, Visual Books, 2005.

SAADE, J. C#: Guia do Programador. Novatec, 2011,

https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1?view=net-5.0

https://www.tutorialsteacher.com/csharp/csharp-list

http://www.macoratti.net/

17

Você também pode gostar