Programação em C# - Exercício 4: Listas e Genéricos
Visão Geral
Esta atividade ajudará você a aprender a trabalhar com Listas e Genéricos em C#.
Preparação
Coleções
As principais bibliotecas C# fornecem todas as coleções e estruturas de dados padrão que você provavelmente precisará em seus programas, incluindo listas, conjuntos, dicionários e assim por diante. Este artigo se concentrará em listas, mas você pode procurar informações facilmente para qualquer outra estrutura de dados que precisar.
Listas
Como você sabe, uma grande diferença entre C# e Python é que você deve declarar seus tipos de variáveis em C#. Embora a princípio isso possa parecer um fardo em C#, você logo descobrirá que isso ajuda a evitar muitos erros em tempo de execução.
De forma semelhante, quando você declara uma nova variável do tipo lista em C#, você não apenas
declara que ela é uma List, mas também deve declarar o tipo de dado que pode ser
colocado na lista. Dessa forma, se você criar uma lista de usuários, evitará adicionar
acidentalmente um pedido ou uma variável de produto a essa lista.
Para criar uma nova lista de inteiros, especifique int dentro de parênteses angulares
<> logo após o nome da estrutura de dados: List<int> e se
você quiser ter uma lista de strings, você usaria: List<string> como mostrado
abaixo.
Tipos de Dados Genéricos
Ao invés de implementar código separado para a estrutura de dados de cada tipo de dado possível, os desenvolvedores da biblioteca List do C# utilizam um conceito chamado 'Genéricos' (Generics).
Com genéricos, a biblioteca é escrita genericamente, e então o tipo pode ser
fornecido para preencher o modelo. Na documentação, você frequentemente verá
T sendo usado como valor de modelo a ser preenchido posteriormente.
List<int> numeros;
List<string> palavras;
O código acima declara uma variável para armazenar a lista, mas antes de poder usá-la, você precisa
criar uma nova utilizando a palavra-chave new.
List<int> numeros;
numeros = new List<int>();
Isso normalmente é feito na mesma linha:
List<int> numeros = new List<int>();
List<string> palavras = new List<string>();
Observe os parênteses extras () no final, que usamos sempre que criamos um novo objeto.
Mais uma coisa importante que você precisa saber: Qualquer arquivo que use listas (ou qualquer outra coleção padrão) deve fazer referência à biblioteca no início do arquivo. Isso é tão comum que às vezes suas configurações para C# podem ser especificadas de forma que você não precise incluir isso manualmente. Mas é importante saber, caso você tenha problemas.
using System.Collections.Generic;
O que é "new" e por que precisamos disso?
Acontece que List é uma classe ou tipo de dado personalizado e estamos
criando um novo objeto ou instância dessa classe. Na verdade, esse é o foco principal
deste curso e, a partir da semana que vem, você aprenderá a criar suas próprias classes
personalizadas.
Com isso em mente, você aprenderá muito mais sobre esse assunto nas próximas semanas, mas,
por enquanto, lembre-se de incluir new antes de começar a usar uma lista.
Adicionando Itens a uma Lista
Para adicionar itens à lista, use o método .Add():
Python
palavras = []
palavras.append("telefone")
palavras.append("teclado")
palavras.append("mouse")
C#
using System.Collections.Generic;
...
List<string> palavras = new List<string>();
palavras.Add("telefone");
palavras.Add("teclado");
palavras.Add("mouse");
Obtendo o tamanho da lista
Você pode obter o tamanho da lista com a propriedade Count.
Python
print(len(palavras))
C#
Console.WriteLine(palavras.Count);
Observe que você não inclui parênteses () depois de Count porque é uma
propriedade, não uma função.
Percorrendo uma Lista
A maneira mais fácil (e segura) de percorrer uma lista em C# é usar o loop foreach:
Python
for palavra in palavras:
print(palavra)
C#
foreach (string palavra in palavras)
{
Console.WriteLine(palavra);
}
Você também pode acessar os itens pelo índice:
Python
for i in range(len(palavras)):
print(palavras[i])
C#
for (int i = 0; i < palavras.Count; i++)
{
Console.WriteLine(palavras[i]);
}
Outras Operações
Há muitas outras coisas que você pode fazer com listas. Você pode visualizar a documentação oficial ou simplesmente começar a digitar no VS Code e ver as opções que o editor Intellisense exibe para você.
Além disso, não se esqueça de que você pode encontrar facilmente a sintaxe com uma rápida pesquisa na Web!
Instruções da Tarefa
Para esta tarefa, você concluirá outra tarefa que fez anteriormente em CSE 110, mas, neste caso, escreva o programa em C#:
Especificação do Programa
Aqui estão as instruções que você viu anteriormente em CSE 110 que usaremos como especificação do nosso programa:
Tarefa
Peça ao usuário uma série de números e adicione cada um deles a uma lista. Pare quando o usuário inserir
0.Depois de criar uma lista, o seu programa deve fazer o seguinte:
Requisitos Básicos
Desenvolva estes requisitos básicos passo a passo para concluir o programa. Por favor, não pule etapas nem faça tudo de uma vez, porque outras pessoas do seu grupo podem precisar desenvolver o programa mais devagar.
Calcular a soma, ou total, dos números da lista.
Calcular a média dos números da lista.
Encontrar o número máximo ou maior na lista.
Veja abaixo o resultado esperado:
Insira uma lista de números e digite 0 quando terminar. Insira o número: 18 Insira o número: 36 Insira o número: 2 Insira o número: 48 Insira o número: 6 Insira o número: 12 Insira o número: 9 Insira o número: 0 A soma é: 131 A média é: 18.714285714285715 O maior número é: 48Desafio Adicional
Peça ao usuário para inserir números positivos e negativos, em seguida, encontre o menor número positivo (o número positivo mais próximo de zero).
Ordene os números na lista e exiba a nova lista reordenada. Dica: Existem bibliotecas C# que podem ajudar você com isso. Tente pesquisá-las na Internet.
Veja abaixo o resultado esperado quando os desafios adicionais forem concluídos:
Insira uma lista de números e digite 0 quando terminar. Insira o número: 3 Insira o número: 5 Insira o número: 7 Insira o número: 3 Insira o número: 2 Insira o número: -1 Insira o número: -4 Insira o número: -8 Insira o número: 0 A soma é: 7 A média é: 0.875 O maior número é: 7 O menor número positivo é: 2 A lista reordenada é: -8 -4 -1 2 3 3 5 7
Crie e Teste o Programa
- Crie e teste o programa conforme descrito acima.
- Você deve concluir os 3 Requisitos Básicos.
- Os desafios adicionais são opcionais.
- Certifique-se de usar o mesmo modelo de projeto que você usou para as atividades anteriores.
No entanto, desta vez, você deve adicionar seu código ao arquivo
Program.csno projetoExercicio4.
Exemplo de Solução
Quando terminar seu programa, veja o exemplo de solução para compará-la com a sua:
Obtendo Ajuda
Se você tiver dúvidas, por favor, pergunte no Microsoft Teams.
Enviando
Retorne ao Canvas e responda ao questionário correspondente.