• Categoria do post:C# - Visual Studio
  • Tempo de leitura:9 minutos de leitura
Ads

Uma variável é usada para armazenar um único valor, enquanto uma vetor é usado para armazenar vários valores.

Por exemplo, se tivermos uma aplicação na qual seja necessário informar 10 nomes diferentes, talvez você pense em criar 10 variáveis para cada nome, no entanto, é possível criar uma única variável para guardar todos os nomes, basta declarar esta variável como um vetor.

Em C #, um vetor pode ser de três tipos: array unidimensional, multidimensional e denteado. Aqui você aprenderá sobre array unidimensional, que é que chamamos de vetor.

A figura a seguir ilustra uma representação de um vetor.

Representação de um vetor (array unidimensional)

Como declarar uma array em C# .Net

Um vetor (array unidimensional) pode ser declarado especificando o tipo de seus elementos com colchetes. Assim;

int[] idades;     // integer array
string[] cidade;  // string array

O exemplo seguinte declara e adiciona valores em um vetor em uma única linha de código (instrução).

int[] idades  = new int[5]{ 10, 16, 26, 28, 80 };  
string[] cidade = new string[3]{"Atibaia", "Piracaia", "Bragança Paulista"};

Acima, o vetor idades pode armazenar até cinco inteiros. O número 5 entre colchetes new int[5] especifica o tamanho do vetor. Da mesma forma, o tamanho do vetor cidades é três. Os elementos do vetor são adicionados em uma lista separada por vírgulas entre chaves {}.

Não é necessário declarar e inicializar um vetor em uma única instrução. Você pode primeiro declarar o vetor e depois inicializá-lo usando o novo operador. Exemplo;

int[] numeros;				
numeros = new int[5] { 2, 4, 6, 8, 10 };

Como NÃO declarar uma array em C# .Net

Separei alguns erros comuns dos estudantes na hora de declarar um vetor e C#;

// falta definir o tamanho
int[] evenNums = new int[]; 

// o número de elementos deve ser igual ao tamanho especificado 
int[] evenNums = new int[5] { 2, 4 };

// A array não foi iniciada corretamente.
var evenNums = { 2, 4, 6, 8, 10}; 

Acessando Elementos e Dados de um vetor (array) em C#

Os elementos de um vetor podem ser acessados ​​por meio de um índice. Um índice é um número associado a cada elemento do vetor, começando com o índice 0.

O exemplo a seguir adiciona e recupera dados dos elementos de um vetor usando índices.

using System;
using System.Linq;

public class Program
{
	public static void Main()
	{
			int[] numeros = new int[5];
			numeros[0] = 2;
			numeros[1] = 4;
			numeros[2] = 15;
			numeros[3] = 11;
			numeros[4] = 2; // meu vetor acaba aqui.
			// numeros[5] = 2; não daria mais certo, mas o índice 5 já está fora do limite do vetor.

			Console.WriteLine("Eu sou o número da posição 0: " + numeros[0]);  // irá exibir 2
			Console.WriteLine("Eu sou o número da posição 0: " + numeros[1]);  // irá exibir 4
			Console.WriteLine("Eu sou o número da posição 0: " + numeros[2]);  // irá exibir 15
			Console.WriteLine("Eu sou o número da posição 0: " + numeros[3]);  // irá exibir 11
			Console.WriteLine("Eu sou o número da posição 0: " + numeros[4]);  // irá exibir 2
	}
}

Acessando dados do vetor (array) usando o for() em C#

Use o laço de repetição for() para acessar os elementos de um vetor. Use também a propriedade length() para saber qual é o tamanho do vetor.

int[] numeros = new int[5];

Console.WriteLine("Digite 5 números (pressione Enter para cada número");

// Armazena dados no vetor
for(int p = 0; p < numeros.Length ; p++)
{
  numeros[p] = Convert.ToInt32(Console.ReadLine());
}

// Recupera os dados armazenados no vetor
Console.WriteLine("\n\nEstes são os números que você digitou");
for(int p = 0; p < numeros.Length ; p++)
{
Console.WriteLine(numeros[p]);
}
Clique na imagem para ver a animação

Acessando dados do vetor (array) usando o foreach() em C#

Uma alternativa ao for() é o laço de repetição foreach() para ler ou recuperar os valores dos elementos de um array, a diferença é que não precisamos usar índices.

O mesmo exemplo acima, o código de recuperação dos dados do vetor poderia ser escrito assim;

// Recupera os dados armazenados no vetor
Console.WriteLine("\n\nEstes são os números que você digitou");
foreach(int item in numeros)
{
  Console.WriteLine(item);
}

Ordenação de Arrays no C#

A ordenação de vetores pode ser feita usando o método Array.Sort() que ordena sempre em ordem crescente, serve tanto para ordenar números como texto. O exemplo a seguir demonstra o seu uso.

Exemplos exercícios com Arrays em C#

01. Escreva uma aplicação no qual o usuário deverá informar 10 números inteiro e maiores que Zero em um vetor. Em um segundo vetor, armazene apenas os números pares e em um terceiro apenas os ímpares. Exiba os 3 vetores, todos em ordem crescente.

Solução

int[] numeros = new int[10];
int[] pares = new int[10];
int[] impares = new int[10];
		
for (int p = 0; p < numeros.Length; p++ )
{
	Console.WriteLine("Digite um número maior que zero");
	numeros[p] = Convert.ToInt32(Console.ReadLine());
}
		
for (int p = 0; p < numeros.Length; p++)
{
	if (numeros[p] % 2 == 0) 
	{
		pares[p] = numeros[p];
	} else {
		impares[p] = numeros[p];
	}
}
		
// ORDENAÇÃO DOS VETORES
Array.Sort(numeros);
Array.Sort(pares);
Array.Sort(impares);
		
Console.WriteLine("\n\nESTES SÃO OS NÚMEROS QUE VOCÊ DIGITOU");
foreach (int num in numeros )
{
	Console.WriteLine(num);
}
		
Console.WriteLine("\n\nESTES SÃO OS PARES");
foreach (int num in pares )
{
	if (num != 0) Console.WriteLine(num);
}
		
Console.WriteLine("\n\nESTES SÃO OS ÍMPARES");
foreach (int num in impares )
{
	if (num != 0) Console.WriteLine(num);
}
	

02. Escreva uma aplicação que leia dois vetores, nome de 10 estudantes e sua respectiva idade. Ordene os vetores e informe qual é o estudante mais velho e o mais novo. (Obs. este exercício também pode ser resolvido usando a classe LINQ que veremos em um próx. artigo)

String[] estudantes = new String[10];
int[] idade = new int[10];
String[] lista = new String[10];
		
Console.WriteLine("Digite o nome de 10 estudantes e sua respectiva idade (Pressione Enter)");

for(int p = 0; p < estudantes.Length ; p++)
{
  Console.WriteLine("Estudante: ");
  estudantes[p] = Console.ReadLine();
		
  Console.WriteLine("Idade: ");
  idade[p] = Convert.ToInt16(Console.ReadLine());
			
  if (idade[p] < 10) 
  {
      lista[p] = "0" + idade[p] + " " + estudantes[p];	  
      } else {
      lista[p] = idade[p] + " " + estudantes[p];	  
  }
}
		
Array.Sort(lista);		
foreach (String p in lista)
{
      Console.WriteLine(p);
}
	
Console.WriteLine("O estudante mais novo é o " + lista[0]);
Console.WriteLine("O estudante mais velho é o " + lista[4]);

Ads

Anderson Oliveira

Anderson Oliveira é desenvolvedor, escritor e docente no CEETPS - Centro Estadual de Educação Tecnologia de São Paulo. Atualmente trabalha na Administração Central do CPS e leciona aulas de programação na Etec Prof. Carmine Biagio Tundisi de Atibaia.