Seja muito bem-vindo à Academy Code Christ!
⚙️ TRILHA C Sharp Etapa 04
Arrays, Listas e Coleções%20-%20Copia.png)
Pense num armário cheio de gavetas. Cada gaveta guarda uma variável: nome, idade, nota, etc. Mas e se você precisasse guardar cem nomes, ou mil notas?
Você não criaria mil variáveis. Seria impossível de gerenciar. É aí que entram as estruturas de dados, que são formas organizadas de armazenar e acessar vários valores de um mesmo tipo com facilidade.
C# oferece várias maneiras de fazer isso, e neste capítulo vamos começar com as mais importantes: arrays, listas e coleções.
O Que é uma Estrutura de Dados?
Uma estrutura de dados é simplesmente uma forma de organizar informações na memória do computador, de modo que elas possam ser guardadas, buscadas, modificadas e removidas facilmente.
Existem vários tipos, e cada um é ideal para uma situação. Mas todos servem para o mesmo propósito: manter seus dados sob controle.
Vamos começar pelo mais simples de todos: o array.
Arrays (Vetores)
Um array (ou vetor) é um conjunto de valores do mesmo tipo, guardados de forma sequencial na memória.
Se antes você tinha:
int nota1 = 8;
int nota2 = 7;
int nota3 = 9;
Agora você pode simplesmente criar:
int[] notas = {8, 7, 9};
💡 Assim, notas se torna uma coleção de três elementos.
🔍 Acessando Elementos de um Array
Cada posição do array tem um índice numérico, que começa em 0.
|
Índice |
Valor |
|
0 |
8 |
|
1 |
7 |
|
2 |
9 |
Para acessar ou alterar elementos, usamos colchetes [].
Exemplo:
Console.WriteLine(notas[0]); // Mostra 8
Console.WriteLine(notas[1]); // Mostra 7
notas[2] = 10; // Altera a nota na terceira posição
🧮 Criando Arrays
Existem várias maneiras de criar arrays no C#:
1️⃣ Declarar e inicializar juntos:
int[] numeros = {1, 2, 3, 4, 5};
2️⃣ Declarar primeiro e preencher
depois:
int[] idades = new int[3];
idades[0] = 20;
idades[1] = 25;
idades[2] = 30;
Aqui, new int[3] cria um array com 3 posições para inteiros.
🔁 Percorrendo Arrays com for
Sempre que você quiser acessar todos os elementos de um array, use um laço de repetição.
int[] numeros = {10, 20, 30, 40, 50};
for (int i = 0; i < numeros.Length; i++)
{
Console.WriteLine("Elemento " + i + ": " + numeros[i]);
}
🔎 numeros.Length devolve o tamanho do array (quantos elementos ele tem).
💪 Exemplo Prático: Médias de Alunos
using System;
class Program
{
static void Main()
{
double[] notas = new double[5];
double soma = 0;
for (int i = 0; i < notas.Length; i++)
{
Console.Write("Digite a nota " + (i + 1) + ": ");
notas[i] = double.Parse(Console.ReadLine());
soma += notas[i];
}
double media = soma / notas.Length;
Console.WriteLine("\nA média das notas é: " + media);
}
}
💬 Esse código pede 5 notas, soma tudo e mostra a média
final.
Simples, organizado e poderoso.
Arrays Multidimensionais (Matrizes)
E quando precisamos guardar dados em duas dimensões — como uma linha e uma coluna, ou tabela de informações?
Podemos usar matrizes, que são arrays dentro de arrays.
int[,] matriz = new int[2, 3];
// Primeira linha
matriz[0, 0] = 1;
matriz[0, 1] = 2;
matriz[0, 2] = 3;
// Segunda linha
matriz[1, 0] = 4;
matriz[1, 1] = 5;
matriz[1, 2] = 6;
Para mostrar todos os valores:
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
Console.Write(matriz[i, j] + " ");
}
Console.WriteLine();
}
Resultado:
1 2 3
4 5 6
Isso é útil em tabelas, cálculos e jogos (como tabuleiros).
Listas (List)
Arrays são ótimos, mas têm uma limitação: têm tamanho fixo.
Depois de criados, não podem ser
aumentados nem diminuídos.
Por isso, C# oferece as listas — estruturas mais flexíveis, que podem crescer ou encolher conforme a necessidade, e que fazem parte do namespace System.Collections.Generic.
🛠️ Criando uma Lista
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<string> nomes = new List<string>();
nomes.Add("Ana");
nomes.Add("Carlos");
nomes.Add("Beatriz");
Console.WriteLine("Total de nomes: " + nomes.Count);
foreach (string nome in nomes)
{
Console.WriteLine(nome);
}
}
}
● Add() adiciona um elemento.
● Count mostra quantos elementos há na lista.
● O foreach percorre todos os itens de forma simples e segura.
✂️ Removendo Elementos de Uma Lista
nomes.Remove("Carlos"); // Remove pelo valor
nomes.RemoveAt(0); // Remove pelo índice (primeiro elemento)
Você também pode limpar tudo com:
nomes.Clear();
🔍 Verificando Elementos
if (nomes.Contains("Beatriz"))
{
Console.WriteLine("Beatriz está na lista!");
}
As listas são ideais para sistemas de cadastro, listas de produtos, controle de dados dinâmicos, e qualquer situação onde o número de itens pode variar.
Tipos de Coleções
Além dos arrays e listas, C# possui estruturas de dados ainda
mais inteligentes, chamadas coleções.
Elas foram criadas para resolver
problemas específicos de organização.
🗂️ Dicionário (Dictionary<TKey,
TValue>)
É como uma lista, mas onde cada valor tem uma chave única — semelhante a um rótulo.
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
Dictionary<int, string> alunos = new Dictionary<int, string>();
alunos.Add(1, "Maria");
alunos.Add(2, "João");
alunos.Add(3, "Paulo");
Console.WriteLine(alunos[2]); // Mostra João
foreach (var item in alunos)
{
Console.WriteLine($"ID: {item.Key}, Nome: {item.Value}");
}
}
}
Perfeito para sistemas onde cada registro precisa ser identificado por um número, código ou chave.
🔁 Outras Coleções Comuns
|
Coleção |
Descrição |
|
Queue<T> |
Fila — primeiro que entra é o primeiro que sai (como atendimento). |
|
Stack<T> |
Pilha — o último que entra é o primeiro que sai (como uma pilha de pratos). |
|
HashSet<T> |
Coleção que não aceita elementos repetidos. |
Cada uma delas tem seu uso específico, e você as conhecerá em projetos mais avançados.
Exercício Prático: Sistema de Alunos com Lista
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<string> alunos = new List<string>();
int opcao;
do
{
Console.WriteLine("\n===== Sistema de Alunos =====");
Console.WriteLine("1 - Adicionar aluno");
Console.WriteLine("2 - Listar alunos");
Console.WriteLine("3 - Remover aluno");
Console.WriteLine("0 - Sair");
Console.Write("Escolha uma opção: ");
opcao = int.Parse(Console.ReadLine());
switch (opcao)
{
case 1:
Console.Write("Digite o nome do aluno: ");
string nome = Console.ReadLine();
alunos.Add(nome);
Console.WriteLine("Aluno adicionado!");
break;
case 2:
Console.WriteLine("\nLista de alunos:");
foreach (string a in alunos)
{
Console.WriteLine(a);
}
break;
case 3:
Console.Write("Digite o nome do aluno para remover: ");
string remover = Console.ReadLine();
if (alunos.Remove(remover))
Console.WriteLine("Aluno removido!");
else
Console.WriteLine("Aluno não encontrado!");
break;
case 0:
Console.WriteLine("Saindo...");
break;
default:
Console.WriteLine("Opção inválida!");
break;
}
} while (opcao != 0);
}
}
🎯 Esse código já é um mini sistema — você
adiciona, lista e remove alunos em tempo real.
Tudo usando listas, que armazenam
e gerenciam os dados de forma flexível.
Conclusão
Chegamos a um ponto crucial do aprendizado:
Você agora sabe armazenar, organizar e manipular grandes quantidades de dados — e isso é o coração de qualquer software útil.
Nesta etapa, você aprendeu:
✅ O que são estruturas de
dados.
✅ A usar arrays simples e
multidimensionais.
✅ A criar e manipular listas
dinâmicas.
✅ A trabalhar com coleções
avançadas como
dicionários.
✅ E até construir um sistema
prático com tudo isso.

.png)
.png)
.png)
Postar um comentário