Estruturas de Dados: Arrays, Listas e Coleções ⚙️ TRILHA C Sharp Etapa 04

  Seja muito bem-vindo à  Academy Code Christ!




🌍 Academy Code Christ está disponível em vários idiomas.
Fique à vontade para usar o tradutor na Barra lateral (Sidebar) e aprender no seu idioma.


⚙️ TRILHA C Sharp Etapa 04

Arrays, Listas e Coleções



📚 Continue sua jornada de aprendizado


A Academy Code Christ oferece trilhas de aprendizado em diferentes tecnologias. Explore os cursos, acompanhe as aulas e avance em sua jornada de conhecimento acessando os menus correspondentes:



💻 Pratique o que você aprende


🎯 O que você vai aprender nesta aula?

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.



Este conteúdo faz parte do Academy Code Christ. 

Um projeto criado para ajudar jovens e iniciantes a aprender programação do zero, de forma simples e gratuita.

Nossa missão é compartilhar conhecimento e incentivar mais pessoas a descobrir que também podem aprender tecnologia, criar projetos e desenvolver novas habilidades.
Todo o conteúdo é disponibilizado gratuitamente, de forma clara, prática e 
sem enrolação. 

Você pode apoiar o projeto se quiser 
com um café. 



Post a Comment

Postagem Anterior Próxima Postagem