Exercício - Introdução às noções básicas de array
- 19 minutos
As matrizes podem ser usadas para armazenar vários valores do mesmo tipo em uma única variável. Os valores armazenados em uma matriz geralmente estão relacionados. Por exemplo, uma lista de nomes de alunos pode ser armazenada em uma matriz de cadeia de caracteres chamada students.
Seu trabalho no departamento de segurança está focado em encontrar um padrão para pedidos fraudulentos. Você deseja que seu código analise pedidos de clientes anteriores e identifique marcadores associados a pedidos fraudulentos. Sua empresa espera que os marcadores possam ser usados para identificar possíveis ordens de compra fraudulentas no futuro antes de serem processadas. Como nem sempre você sabe com antecedência quantos pedidos precisa revisar, não é possível criar variáveis individuais para armazenar cada ID de pedido. Como você pode criar uma estrutura de dados para armazenar vários valores relacionados?
Neste exercício, você usa matrizes para armazenar e analisar uma coleção de IDs de Ordem.
O que é uma matriz?
Uma matriz é uma coleção de elementos de dados individuais acessíveis através de um único nome de variável. É utilizado um índice numérico baseado em zero para aceder a cada elemento de uma matriz. As matrizes permitem criar uma coleção de valores de dados que compartilham uma finalidade ou características comuns sob um único nome de variável para facilitar o processamento.
Declarando matrizes e acessando elementos de matriz
Uma matriz é um tipo de variável especial que pode conter múltiplos valores do mesmo tipo de dados. A sintaxe da declaração é ligeiramente diferente para uma matriz porque você precisa especificar o tipo de dados e o tamanho da matriz.
Prepare seu ambiente de codificação
Este módulo inclui atividades que o guiam através do processo de criação e execução de código de exemplo. Você é incentivado a concluir essas atividades usando o Visual Studio Code como seu ambiente de desenvolvimento. Usar o Visual Studio Code para essas atividades ajuda você a se sentir mais confortável escrevendo e executando código em um ambiente de desenvolvedor usado por profissionais em todo o mundo.
Abra o Visual Studio Code.
Você pode usar o menu Iniciar do Windows (ou recurso equivalente para outro sistema operacional) para abrir o Visual Studio Code.
No menu Arquivo de código do Visual Studio, selecione Abrir pasta.
Na caixa de diálogo Abrir pasta, navegue até a pasta Área de trabalho do Windows.
Se você tiver um local de pasta diferente onde você mantém projetos de código, você pode usar esse local de pasta em vez disso. Para este treinamento, o importante é ter um local que seja fácil de localizar e lembrar.
Na caixa de diálogo Abrir pasta, selecione Selecionar pasta.
Se vir uma caixa de diálogo de segurança a perguntar se confia nos autores, selecione Sim.
No menu Terminal de código do Visual Studio, selecione Novo terminal.
Observe que um prompt de comando no painel Terminal exibe o caminho da pasta atual. Por exemplo:
C:\Users\someuser\Desktop>Nota
Se você estiver trabalhando em seu próprio PC em vez de em uma área restrita ou ambiente hospedado e tiver concluído outros módulos do Microsoft Learn nesta série C#, talvez já tenha criado uma pasta de projeto para exemplos de código. Se esse for o caso, você pode pular a próxima etapa, que é usada para criar um aplicativo de console na pasta TestProject.
No prompt de comando do Terminal, para criar um novo aplicativo de console em uma pasta especificada, digite o seguinte prompt:
dotnet new console -o ./CsharpProjects/TestProjectEste comando .NET CLI usa um modelo de programa .NET para criar um novo projeto de aplicativo de console C# no local da pasta especificada. O comando cria as pastas CsharpProjects e TestProject para você e usa TestProject como o nome do seu
.csprojarquivo.Se for exibida uma mensagem informando que os arquivos já existem, continue com as próximas etapas. Você reutilizará os arquivos de projeto existentes.
Na visualização EXPLORER, expanda a pasta CsharpProjects .
Você deve ver a pasta TestProject e dois arquivos, um arquivo de programa C# chamado Program.cs e um arquivo de projeto C# chamado TestProject.csproj.
No menu Arquivo de código do Visual Studio, selecione Abrir pasta.
Na caixa de diálogo Abrir pasta , selecione a pasta CsharpProjects e, em seguida, selecione Selecionar pasta.
No modo de exibição EXPLORER, expanda a pasta TestProject e selecione Program.cs.
Exclua as linhas de código existentes.
Você usará este projeto de console C# para criar, compilar e executar exemplos de código durante este módulo.
Feche o painel Terminal.
Declarar uma nova matriz
Para declarar uma nova matriz de cadeias de caracteres que podem conter três elementos, digite o seguinte código:
string[] fraudulentOrderIDs = new string[3];Reserve um minuto para examinar seu código.
O operador
newcria uma nova instância de uma matriz na memória do computador que pode conter três valores de cadeia. Para obter mais informações sobre a palavra-chavenew, veja o módulo "Chamar métodos da Biblioteca de Classes .NET com C#".Observe que o primeiro conjunto de colchetes apenas diz ao compilador que a variável nomeada
[]é uma matriz, mas o segundo conjunto de colchetesfraudulentOrderIDs[3]indica o número de elementos que a matriz pode conter.Nota
Este exemplo demonstra como declarar uma matriz de cadeias de caracteres, no entanto, você pode criar uma matriz de cada tipo de dados, incluindo primitivos como
inteboolbem como tipos de dados mais complexos, como classes. Este exemplo utiliza a simplicidade das cadeias para reduzir o número de novas ideias que tem de compreender ao dar os primeiros passos.
Atribuir valores a elementos de uma matriz
Neste ponto, você declarou uma matriz de cadeias de caracteres, mas cada elemento da matriz está vazio. Para aceder a um elemento de uma matriz, utilize um índice numérico baseado em zero dentro de parênteses retos. Você pode atribuir um valor a um elemento de matriz usando o = como se fosse uma variável regular.
Para atribuir valores de ID de pedido à matriz
fraudulentOrderIDs, atualize o código da seguinte maneira:string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789";Reserve um minuto para examinar seu código.
Observe que você está usando o nome da matriz para acessar elementos da matriz. Cada elemento é acessado individualmente especificando o número de índice baseado em zero dentro dos colchetes.
Como sua matriz é declarada como uma cadeia de caracteres, os valores atribuídos também devem ser strings. Nesse cenário, você está atribuindo IDs de ordem aos elementos da matriz.
Tentar usar um índice que está fora dos limites da matriz
Pode não parecer intuitivo no início, mas é importante lembrar que você está declarando a contagem de elementos na matriz. No entanto, você acessa cada elemento da matriz começando com zero. Assim, para acessar o segundo item na matriz, use index 1.
É comum que iniciantes esqueçam que os arrays são baseados em zero e tentem acessar um elemento do array que não existe. Se você cometer esse erro, ocorrerá uma exceção de tempo de execução informando que você tentou acessar um elemento que está fora do limite da matriz.
Para intencionalmente "quebrar" seu aplicativo, tente acessar um quarto elemento de sua matriz usando o valor de índice de 3.
Na parte inferior do arquivo de código, digite a seguinte linha de código:
fraudulentOrderIDs[3] = "D000";Certifique-se de que seu código corresponda a este exemplo:
string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789"; fraudulentOrderIDs[3] = "D000";No menu Arquivo de código do Visual Studio, selecione Salvar.
Na vista EXPLORER, para abrir um Terminal na localização da pasta TestProject, clique com o botão direito do rato em TestProject e, em seguida, selecione Abrir no Terminal Integrado.
Um painel Terminal deve ser aberto e deve incluir um prompt de comando mostrando que o Terminal está aberto para o local da pasta TestProject .
No prompt de comando do Terminal, para compilar seu código, digite
dotnet builde pressione Enter.Você verá a seguinte mensagem:
Build succeeded. 0 Warning(s) 0 Error(s)No prompt de comando do Terminal, para executar o código, digite
dotnet rune pressione Enter.Quando você executa o aplicativo, você recebe a seguinte mensagem de erro de tempo de execução:
Unhandled exception. System.IndexOutOfRangeException: Index was outside the bounds of the array. at Program.<Main>$(String[] args) in C:\Users\someuser\Desktop\CsharpProjects\TestProject\Program.cs:line 6Observe as seguintes partes do erro:
- Mensagem de erro:
System.IndexOutOfRangeException: Index was outside the bounds of the array. - Localização do erro:
Program.cs:line 6
- Mensagem de erro:
Comente a linha que gerou o erro de tempo de execução.
// fraudulentOrderIDs[3] = "D000";
Você viu como atribuir um valor a um elemento de matriz. Agora veja como acessar um valor que está sendo armazenado em um elemento de matriz.
Recuperar valores de elementos de uma matriz
Acessar o valor de um elemento de matriz funciona da mesma forma que atribuir um valor a um elemento de matriz. Basta especificar o índice do elemento cujo valor deseja recuperar.
Para escrever o valor de cada ID de pedido fraudulento, atualize seu código da seguinte maneira:
string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789"; // fraudulentOrderIDs[3] = "D000"; Console.WriteLine($"First: {fraudulentOrderIDs[0]}"); Console.WriteLine($"Second: {fraudulentOrderIDs[1]}"); Console.WriteLine($"Third: {fraudulentOrderIDs[2]}");No menu Arquivo de código do Visual Studio, selecione Salvar.
Na vista EXPLORER, para abrir um Terminal na localização da pasta TestProject, clique com o botão direito do rato em TestProject e, em seguida, selecione Abrir no Terminal Integrado.
No prompt de comando do Terminal, digite
dotnet rune pressione Enter.Você verá a seguinte mensagem:
First: A123 Second: B456 Third: C789
Reatribuir o valor de uma matriz
Os elementos de uma matriz são como qualquer outro valor de variável. Você pode atribuir, recuperar e reatribuir um valor a cada elemento da matriz.
No final do arquivo de código, para reatribuir e imprimir o valor do primeiro elemento de matriz, digite o seguinte código:
fraudulentOrderIDs[0] = "F000"; Console.WriteLine($"Reassign First: {fraudulentOrderIDs[0]}");Verifique se o código corresponde ao exemplo a seguir:
string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789"; // fraudulentOrderIDs[3] = "D000"; Console.WriteLine($"First: {fraudulentOrderIDs[0]}"); Console.WriteLine($"Second: {fraudulentOrderIDs[1]}"); Console.WriteLine($"Third: {fraudulentOrderIDs[2]}"); fraudulentOrderIDs[0] = "F000"; Console.WriteLine($"Reassign First: {fraudulentOrderIDs[0]}");No menu Arquivo de código do Visual Studio, selecione Salvar.
Na vista EXPLORER, para abrir um Terminal na localização da pasta TestProject, clique com o botão direito do rato em TestProject e, em seguida, selecione Abrir no Terminal Integrado.
No prompt de comando do Terminal, digite
dotnet rune pressione Enter.Você verá a seguinte mensagem:
First: A123 Second: B456 Third: C789 Reassign First: F000
Inicializar uma matriz
Você pode inicializar uma matriz durante a declaração da mesma forma que faria com uma variável regular.
Comente as linhas onde você declara a
fraudulentOrderIDsvariável.Você pode usar um comentário de várias linhas (
/* ... */) para comentar a declaração de e as linhas usadas para atribuir valores aos elementos dafraudulentOrderIDsmatriz.Para declarar a matriz e inicializar valores em uma única instrução, digite o seguinte código:
string[] fraudulentOrderIDs = [ "A123", "B456", "C789" ];Este exemplo utiliza a sintaxe da expressão Collection , que foi introduzida em C# 12 e é suportada no .NET 10.
Você também pode ver uma sintaxe mais antiga usada para inicializar uma matriz.
string[] fraudulentOrderIDs = { "A123", "B456", "C789" };Observe que essa sintaxe mais antiga usa chaves para incluir os
{}valores da matriz. Ambas as sintaxes são válidas.Nota
Você pode ver uma combinação da sintaxe mais antiga e da sintaxe da expressão Collection usada neste treinamento.
Verifique se o código corresponde ao exemplo a seguir:
/* string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789"; // fraudulentOrderIDs[3] = "D000"; */ string[] fraudulentOrderIDs = [ "A123", "B456", "C789" ]; Console.WriteLine($"First: {fraudulentOrderIDs[0]}"); Console.WriteLine($"Second: {fraudulentOrderIDs[1]}"); Console.WriteLine($"Third: {fraudulentOrderIDs[2]}"); fraudulentOrderIDs[0] = "F000"; Console.WriteLine($"Reassign First: {fraudulentOrderIDs[0]}");Reserve um minuto para examinar a declaração de declaração.
Observe que essa sintaxe é compacta e fácil de ler. Quando você executa o aplicativo, não deve haver nenhuma alteração na saída.
No menu Arquivo de código do Visual Studio, selecione Salvar.
Na vista EXPLORER, para abrir um Terminal na localização da pasta TestProject, clique com o botão direito do rato em TestProject e, em seguida, selecione Abrir no Terminal Integrado.
No prompt de comando do Terminal, digite
dotnet rune pressione Enter.Deverá ver a mesma mensagem que antes:
First: A123 Second: B456 Third: C789 Reassign First: F000
Usar a propriedade Length de uma matriz
Consoante a forma como a matriz é criada, talvez não saiba antecipadamente quantos elementos a mesma contém. Para determinar o tamanho de uma matriz, pode utilizar a propriedade Length.
Nota
A Length propriedade de uma matriz não é baseada em zero.
No final do arquivo de código, para relatar o número de pedidos fraudulentos, digite o seguinte código:
Console.WriteLine($"There are {fraudulentOrderIDs.Length} fraudulent orders to process.");Esse código usa a propriedade da
Lengthmatriz, um inteiro, para retornar o número de elementos em suafraudulentOrderIDsmatriz.Certifique-se de que seu código corresponda a este exemplo:
/* string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789"; // fraudulentOrderIDs[3] = "D000"; */ string[] fraudulentOrderIDs = [ "A123", "B456", "C789" ]; Console.WriteLine($"First: {fraudulentOrderIDs[0]}"); Console.WriteLine($"Second: {fraudulentOrderIDs[1]}"); Console.WriteLine($"Third: {fraudulentOrderIDs[2]}"); fraudulentOrderIDs[0] = "F000"; Console.WriteLine($"Reassign First: {fraudulentOrderIDs[0]}"); Console.WriteLine($"There are {fraudulentOrderIDs.Length} fraudulent orders to process.");Salve as alterações no arquivo Program.cs e execute o aplicativo.
Deverá ver o seguinte resultado:
First: A123 Second: B456 Third: C789 Reassign First: F000 There are 3 fraudulent orders to process.
Recapitulação
Aqui estão as coisas mais importantes a serem lembradas ao trabalhar com arrays:
- Uma matriz é uma variável especial que contém uma coleção de elementos de dados relacionados.
- Deverá memorizar o formato básico de uma declaração de variável de matriz.
- Aceda a cada elemento de uma matriz para definir ou obter os respetivos valores com um índice baseado em zero dentro de parênteses retos.
- Se você tentar acessar um índice fora do limite da matriz, obterá uma exceção de tempo de execução.
- A propriedade
Lengthfornece uma forma de determinar o número de elementos numa matriz através de programação.