Desenvolvimento - C#

Série aprenda C# - Arrays em C#

Neste sexto e ultimo artigo da Série aprenda C# vamos aprender sobre arrays.

por Cleber Dantas



Publico: Iniciante

No último artigo da série aprenda c# aprendemos sobre estruturas de repetição. Vimos os seguintes tipos de Loops:


Laço for;

Laço while;

Laço do....while;

Laço foreach.

Para maiores informações veja:

http://www.linhadecodigo.com.br/artigos.asp?id_ac=1177

Introdução

Neste sexto e ultimo artigo da Série aprenda C# vamos aprender sobre arrays.

De forma simples um Array é um conjunto de elementos de um mesmo tipo de dado onde cada elemento desse conjunto é acessado através de um índice. Um array é também conhecido como vetor (quando unidimensional) ou matriz (quando bidimensional).

Array Unidimensional – Vetor

Como já dito na introdução do artigo um vetor é um array de uma única dimensão.

Em C# declaramos vetores da seguinte maneira:

string[] carros; //Array somente declarado, não inicializado e nem criado efetivamente

A sintaxy da declaração é simples colocamos o tipo que queremos que o nosso array (vetor) se torne e a frente abrimos e fechamos colchetes ([]) e damos um nome (neste caso ‘carros’).

Agora ainda temos que cria-lo efetivamente e inicializa-lo, para isso fazemos o seguinte:

carros = new string[3] ; // vetor com 3 elementos, aqui estamos criando-o efetivamente

Com o Vetor em “mãos” (criado) nos falta inicializa-lo, ou seja, colocar valores em suas posições. Em C# as posições de um vetor é acessada através de um Índice que sempre começa com zero, veja:

carros[0] = “Palio”;
carros[1] = “Corsa”;
carros[2] = “Gol”;


Acima temos um array inicializado, todas suas posições (as 3) tem um valor, veja que vai de 0 a 2 e não de 1 a 3 (sempre a ultima posição vai ser igual a quantidade de elementos menos 1).

Vejamos como percorrer este vetor através de um Laço for:

for(int i = 0; i < 3; i++)

{

Console.WriteLine(carros[i].ToString());

}

Até o momento vimos como declarar, criar, inicializar e acessar um vetor, agora vamos ver como isso se aplica a matriz.

Array Bidimensional – Matriz

Vamos declarar um array de duas dimensões, veja:

int[,] array = new int[2, 2];

Na sintaxy acima declaramos um array bidimensional com duas linhas e duas colunas, ou seja, temos um array com 4 posições:

array[0,0] = 1;

array[0,1] = 2;

array[1,0] = 3;

array[1,1] = 4;

No Código acima temos a inicialização de cada posição da matriz.

Vamos ver agora como fazemos para percorrer cada posição da matriz, veja:

for(int i = 0; i < 2; i++)

{

for(int j = 0; j < 2; j++)

{

Console.WriteLine(array[i,j].ToString());

}

}

Ou seja, precisamos de um for dentro de outro, o primeiro percorre cada ‘linha’ enquanto o interno percorre as ‘colunas’.

Percorrendo um Array – foreach

Como já visto no artigo anterior podemos percorrer coleções com o loop foreach, vejamos como percorrer um vetor de inteiros:

int[] array = new int[2];

array[0] = 1;

array[1] = 2;

foreach(int valor in array)

{

Console.WriteLine(valor.ToString());

}

Veja como é muito mais simples, no loop foreach a variável ‘valor’ assume cada valor contido na coleção, no nosso caso o vetor. Ainda poderíamos percorrer qualquer outra coleção, como linhas de uma Data Table ou ainda uma lista genérica.

Conclusão

Espero que com este último artigo da Série Aprenda C#, você leitor que esta começando a aprender esta nova linguagem possa ter absorvido tais conhecimentos, acredito sim que estes seis artigos da série é uma boa introdução sobre os princípios da linguagem e que pode servir como uma base para que você possa seguir nos demais estudos. Fica aqui meu agradecimento a todas as pessoas que vem tirando duvidas por e-mail ou até mesmo pelo messenger. E como já é de costume deixo meu e-mail para qualquer duvida, critica ou até mesmo sugestão: cleberwd@hotmail.com. Obrigado e grande abraço.

Cleber Dantas

Cleber Dantas - Ministra palestras e mini-cursos, MSP (Microsoft Student Partner), MCAD (Microsoft Certified Application Developer) e MCTS (Microsoft certified Technology Specialist). Membro do comitê Web/Infra do INETA Brasil (International .NET Association), colaborador do Portal Linha de código e IMasters. Trabalha com a plataforma .NET desde 2003.