Olá pessoal, neste artigo veremos nesta terceira e última parte os Arrays Multidimensionais, como passar Arrays como Parâmetro, Params e como criar Arrays de Objetos. Acompanhem:
Arrays Multidimensionais – Podemos criar um Array de diversas dimensões. No exemplo abaixo vemos a declaração e instanciação de um array, de acordo com a seguinte situação: um cadastro de 10 notas de alunos fictícios, sendo que, para cada aluno, temos 3 notas distintas, para as disciplinas Matemática, Física e Inglês. Veja:
//10 = quantidade de alunos
//3 = quantidade de notas
double[,] notaAlunos = new double[10, 3];
//primeira dimensão(0) - índice(0)
notaAlunos[0, 0] = 9.0;
notaAlunos[0, 1] = 6.5;
notaAlunos[0, 2] = 8.0;
//segunda dimensão(1) - índice(0)
notaAlunos[1, 0] = 8.0;
notaAlunos[1, 1] = 9.5;
notaAlunos[1, 2] = 7.0;
//terceira dimensão(2) - índice(0)
notaAlunos[2, 0] = 10.0;
notaAlunos[2, 1] = 7.5;
notaAlunos[2, 2] = 5.0;
E assim sucessivamente até completar as 10 dimensões, no valor 9.
Para percorrermos um array multidimensional, podemos usar laços For aninhados. Veja como:
for (int notas = 0; notas < 10; notas++)
{
for (int disciplinas = 0; disciplinas < 3; disciplinas++)
{
Console.WriteLine(notaAlunos[notas, disciplinas]);
}
}
A propriedade Length, neste exemplo, nos retorna o total de elementos do array, ou seja, 30 (10x3) elementos. Já, para sabermos o total de elementos de uma dimensão usamos a propriedade GetLength(), passando como parâmetro o número da dimensão. Veja:
int tamanho = notaAlunos.GetLength(0);
Veja o resultado, usando o Breakpoint:

Para saber o total de dimensões, usamos a propriedade Rank:
int totalDimensoes = notaAlunos.Rank;
O resultado será 2, que é o total de dimensões do array notasAlunos.
Passando Array como Parâmetro – Um array pode ser passado e recebido como parâmetro. Muito importante dizer que qualquer alteração realizada nos valores do método que receber um array como parâmetro serão refletidas no array original, já que os arrays são passados como referência. Veja o exemplo:
static void AlterarValor(int[] x)
{
for (int i = 0; i < 5; i++)
{
x[i] = 5 * x[i];
}
}
static void Main(string[] args)
{
//declaro seu tipo e o preencho
int[] A = { 5, 10, 15, 20, 25 };
AlterarValor(A);
foreach (int valor in A)
{
Console.WriteLine(valor);
}
Console.ReadKey();
}
Note que os valores originais são 5, 10, 15, 20 e 25. Após o uso do método AlterarValor, veja o resultado:
Usando Params – Por meio da palavra-chave params, é possível definir um parâmetro de método que usa um argumento no qual a quantidade de argumentos varia, ou seja, quando não temos um valor definido de argumentos.
Veja o código a seguir com o uso do params:
static void Valores(params string[] ExemploParams)
{
for (int i = 0; i < ExemploParams.Length; i++)
{
Console.WriteLine("Os valores são: " + ExemploParams[i]);
}
}
static void Main(string[] args)
{
Valores("a", "b", "c", "d", "e");
Console.ReadKey();
}
Com a execução do código acima, temos o seguinte resultado:
Ao usarmos a palavra-chave params na declaração de um método, devemos saber as seguintes regras:
· Poderemos usar apenas uma palavra params por declaração;
· Após a palavra params, não poderemos usar parâmetros adicionais.
Criando Arrays de Objetos – Os arrays não apenas são criados com os tipos primitivos, mas também com qualquer tipo de objeto, como vemos no exemplo abaixo:
class Pessoa
{
public double altura, peso;
}
class Program
{
static void Main(string[] args)
{
//Crio o Array
Pessoa[] nomes = new Pessoa[2];
//Crio um objeto para cada elemento
nomes[0] = new Pessoa();
nomes[0].altura = 1.75;
nomes[0].peso = 85;
nomes[1] = new Pessoa();
nomes[1].altura = 1.90;
nomes[1].peso = 100;
for (int i = 0; i < nomes.Length; i++)
{
Console.WriteLine("Altura Pessoa: " + i + ": " + nomes[i].altura + "\nPeso Pessoa" + i + ": " + nomes[i].peso);
}
Console.ReadKey();
}
}
Veja seu resultado, depois de compilado e executado:
Perceba que podemos (e devemos) usar Array de diversas formas!
Fonte de Consulta: Apostila de C#, da Impacta Tecnologia.
Assim finalizo o artigo. Muito obrigado a todos!
Um abraço, e até o próximo artigo.
Wellington Balbo de Camargo