Matriz C#

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 newpalavra-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 scoresarray, eles assumirão o valor padrão do inttipo, 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 scoresmatriz:

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 scoresarray 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 Lengthpropriedade retorna o tamanho de um array. Para acessar a Lengthpropriedade, você usa a variável array com o operador ponto e Lengtha propriedade. Por exemplo:

scores.LengthLinguagem de código:  C#  ( cs )

Iterando sobre elementos do array

Para iterar sobre elementos de um array, você usa a forinstrução. O exemplo a seguir usa a forinstrução para enviar os elementos da scoresmatriz 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
1Linguagem 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 ^1faz referência ao último elemento, ^2faz 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 scoresmatriz:

int[] scores = { 3, 2, 5, 4, 1 };

Console.WriteLine(scores[^1]); // 1
Console.WriteLine(scores[^2]); // 4Linguagem de código:  C#  ( cs )

Saída:

1
4Linguagem de código:  C#  ( cs )

O Indextipo 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]); // 4Linguagem 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 Nelementos 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 Nelemento 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 Nto 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 5Linguagem de código:  C#  ( cs )

O Rangetipo 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 Lengthpropriedade para acessar o tamanho de um array.
  • Use a forinstruçã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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *