Resumo : neste tutorial, você aprenderá sobre o array C# e como usá-lo para armazenar um número fixo de valores do mesmo tipo.
Introdução ao array C#
Uma matriz armazena um número fixo de elementos do mesmo tipo. Para declarar uma variável de array, você usa colchetes []
após o tipo do elemento:
type[] arrayName;
Linguagem de código: C# ( cs )
Por exemplo, o seguinte declara uma matriz de inteiros:
int[] scores;
Linguagem de código: C# ( cs )
Para criar um array, você usa a new
palavra-chave com o tipo do elemento e o número de elementos que o array irá conter.
Por exemplo, o seguinte declara uma variável de array e cria um novo array que contém cinco inteiros:
int[] scores;
scores = new int[5];
Linguagem de código: C# ( cs )
Além disso, você pode declarar e criar um novo array usando uma única instrução como esta:
int[] scores = new int[5];
Linguagem de código: C# ( cs )
Como não inicializamos os elementos do scores
array, eles assumirão o valor padrão do int
tipo, que é zero.
Acessando elementos do array
Para acessar um elemento de uma matriz, você usa o colchete []
com um índice. Uma matriz é uma indexação baseada em zero. Isso significa que o índice do primeiro elemento começa em zero, o índice do segundo elemento começa em um e assim por diante.
Se uma matriz tiver N elementos, o índice do último elemento será N – 1. O exemplo a seguir atribui um número inteiro a cada elemento da matriz na scores
matriz:
scores[0] = 3;
scores[1] = 2;
scores[2] = 5;
scores[3] = 4;
scores[4] = 1;
Linguagem de código: C# ( cs )
Inicializando uma matriz
Para declarar e preencher um array em uma única instrução, você pode usar a expressão de inicialização de array. O exemplo a seguir define o scores
array e inicializa seus elementos:
int[] scores = new int[5] { 3, 2, 5, 4, 1 };
Linguagem de código: C# ( cs )
Ou simplesmente:
int[] scores = { 3, 2, 5, 4, 1 };
Linguagem de código: C# ( cs )
Obtendo o tamanho do array
A Length
propriedade retorna o tamanho de um array. Para acessar a Length
propriedade, você usa a variável array com o operador ponto e Length
a propriedade. Por exemplo:
scores.Length
Linguagem de código: C# ( cs )
Iterando sobre elementos do array
Para iterar sobre elementos de um array, você usa a for
instrução. O exemplo a seguir usa a for
instrução para enviar os elementos da scores
matriz para o console:
int[] scores = { 3, 2, 5, 4, 1 };
for (int i = 0; i < scores.Length; i++)
{
Console.WriteLine(scores[i]);
}
Linguagem de código: C# ( cs )
Saída:
3
2
5
4
1
Linguagem de código: C# ( cs )
Portanto, você pode definir uma função que produza um array de números inteiros para o console assim:
void PrintArray(int[] items)
{
for (int i = 0; i < items.Length; i++)
{
Console.Write($"{items[i]} ");
}
}
Linguagem de código: C# ( cs )
Índices
Os índices permitem referenciar os elementos relativos ao final do array com o ^
operador e um índice. O ^1
faz referência ao último elemento, ^2
faz referência ao penúltimo elemento e assim por diante.
O exemplo a seguir usa índices para acessar o último e o penúltimo elemento da scores
matriz:
int[] scores = { 3, 2, 5, 4, 1 };
Console.WriteLine(scores[^1]); // 1
Console.WriteLine(scores[^2]); // 4
Linguagem de código: C# ( cs )
Saída:
1
4
Linguagem de código: C# ( cs )
O Index
tipo permite acessar um elemento da matriz usando uma variável em vez de um número inteiro literal. Por exemplo:
int[] scores = { 3, 2, 5, 4, 1 };
Index lastIndex = ^2;
Console.WriteLine(scores[lastIndex]); // 4
Linguagem de código: C# ( cs )
Gamas
Os intervalos permitem dividir uma matriz usando o ..
operador.
O seguinte retorna um novo array que armazena os primeiros N
elementos de um array.
arrayName[..N]
Linguagem de código: C# ( cs )
O seguinte retorna um novo array que armazena todos os elementos, começando do N
elemento até o final do array:
arrayName[N..]
Linguagem de código: C# ( cs )
O seguinte retorna um novo array que armazena os elementos do elemento N
to M
:
arrayName[N..M]
Linguagem de código: C# ( cs )
Veja o exemplo a seguir:
void PrintArray(int[] items)
{
for (int i = 0; i < items.Length; i++)
{
Console.Write($"{items[i]} ");
}
Console.WriteLine();
}
int[] scores = { 3, 2, 5, 4, 1 };
Console.WriteLine("scores:");
PrintArray(scores);
// get the first two elements
int[] subScores = scores[..2];
Console.WriteLine("scores[2..]:");
PrintArray(subScores);
// get the elements starting from the 3rd element
subScores = scores[2..];
Console.WriteLine("scores[2..]:");
PrintArray(subScores);
// get all the elements starting from the 2nd element
Console.WriteLine("scores[1..3]:");
subScores = scores[1..3];
PrintArray(subScores);
Linguagem de código: C# ( cs )
Saída:
scores:
3 2 5 4 1
scores[..2]:
3 2
scores[2..]:
5 4 1
scores[1..3]:
2 5
Linguagem de código: C# ( cs )
O Range
tipo permite dividir um array usando uma variável. Por exemplo:
void PrintArray(int[] items)
{
for (int i = 0; i < items.Length; i++)
{
Console.Write($"{items[i]} ");
}
Console.WriteLine();
}
int[] scores = { 3, 2, 5, 4, 1 };
Range r = 1..3;
PrintArray(scores[r]);
Linguagem de código: C# ( cs )
Resumo
- Uma matriz contém um número fixo de elementos do mesmo tipo.
- Uma matriz é um índice baseado em zero.
- Use a
Length
propriedade para acessar o tamanho de um array. - Use a
for
instrução para iterar sobre elementos de uma matriz. - Use índices (
^index
) para acessar elementos do final de um array. - Use intervalos para dividir uma matriz.
- Use uma matriz se o número de elementos for conhecido no momento do design. Evite usá-lo se o tamanho do array for conhecido agora.