Tutorial de array C#: criar, declarar, inicializar

⚡ Resumo Inteligente

Em C#, os arrays armazenam uma coleção de tamanho fixo de elementos que compartilham o mesmo tipo de dados sob um único nome de variável. Cada elemento é indexado a partir de zero, o que torna a declaração, inicialização e acesso a valores rápidos e previsíveis.

  • 📌 Definição: Um array armazena múltiplos valores de um mesmo tipo em posições indexadas, acessadas por meio de uma única variável.
  • Declaração: Um tipo de dados seguido por colchetes e um nome declara uma matriz, por exemplo, valores Int32[].
  • 🔢 Inicialização: A nova palavra-chave define o tamanho, então cada índice recebe um valor como values[0]=1.
  • 🔍 Acesse em: A indexação baseada em zero lê ou escreve qualquer elemento, portanto o primeiro item é values[0] e a contagem começa em 0.
  • 🔁 Iteração: Um loop foreach percorre cada elemento sem índice, o que evita erros de índice fora do intervalo em arrays maiores.
  • 🤖 Assistência de IA: O GitHub Copilot gera código boilerplate para arrays, enquanto o ML.NET carrega arrays numéricos como recursos para modelos de aprendizado de máquina.

Matrizes em C#

O que é um array em C#?

Uma matriz é usada para armazenar uma coleção ou série de elementos. Esses elementos serão do mesmo tipo.

Por exemplo, se você tivesse uma matriz de valores inteiros, a matriz poderia ser uma coleção de valores como [1, 2, 3, 4]. Aqui o número de elementos na matriz é 4.

Matrizes são úteis quando você deseja armazenar uma coleção de valores do mesmo tipo. Então, em vez de declarar um variável para cada elemento, você pode declarar apenas uma variável.

Esta variável apontará para um array ou lista de elementos, que será responsável por armazenar os elementos do array.

Vejamos como podemos trabalhar com arrays em C#. Em nosso exemplo, declararemos um array de números inteiros e trabalharemos com eles de acordo.

Observe que todo o código abaixo está sendo criado no arquivo Program.cs.

Passo 1) Declarando um array – O primeiro passo é declarar um array. Vamos ver como podemos conseguir isso com o exemplo de código abaixo.

Matrizes em C#

Code Explicação:-

  1. A primeira parte é a tipo de dados. Ele especifica o tipo de elementos usados ​​no array. Portanto, em nosso caso, estamos criando um array de números inteiros.
  2. A segunda parte [ ], que especifica a classificação da matriz. (A classificação é um espaço reservado que especifica o número de elementos que a matriz conterá)
  3. O próximo é o nome do array que no nosso caso é 'valores'. Observe que você vê um sublinhado verde ondulado, não se preocupe com isso. Isso é apenas .Net dizendo que você declarou um array, mas não o usou em lugar nenhum.

Passo 2) A próxima etapa é inicializar o array. Aqui vamos especificar o número de valores que o array conterá. Também atribuiremos valores a cada elemento do array.

Matrizes em C#

Code Explicação:-

  1. Primeiro, estamos definindo o número de elementos que o array conterá como 3. Portanto, entre colchetes, estamos dizendo que o array conterá 3 elementos.
  2. Em seguida, atribuímos valores a cada elemento da matriz. Podemos fazer isso especificando o nome da variável + a posição do índice na matriz. Assim, `values[0]` significa que estamos armazenando um valor na primeira posição da matriz. Da mesma forma, para acessar a segunda posição, usamos a notação `values[1]` e assim por diante.

Observação: – Em Arrays, a posição do índice começa em 0.

Passo 3) Vamos agora exibir os elementos individuais do array no Console. Vamos adicionar o código abaixo para conseguir isso.

Matrizes em C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args) 
  {
   Int32[] value;
   value=new Int32[3];
   
   value[0]=1;
   value[1]=2;
   value[2]=3;
   
   Console.WriteLine(value[0]);
   Console.WriteLine(value[1]);
   Console.WriteLine(value[2]);
    
   Console.ReadKey(); 
  }
 }
}

Code Explicação:-

Esta é a parte simples em que apenas usamos o método Console.WriteLine para enviar cada valor do elemento para o console.

Observe que, novamente, estamos acessando cada elemento com a ajuda do nome da variável do array junto com a posição do índice.

Se o código acima for inserido corretamente e o programa for executado, a seguinte saída será exibida.

Saída:

Matrizes em C#

Na saída, você pode ver todos os valores da matriz sendo exibidos no Console.

Como percorrer um array em C# usando foreach

Ler cada elemento pelo seu índice funciona, mas torna-se tedioso quando um array contém muitos valores. O loop `foreach` oferece uma maneira mais limpa de visitar cada elemento de um array em ordem, sem... tracrei, uma variável de índice você mesmo.

A instrução `foreach` pega cada item da matriz um de cada vez e o copia para uma variável de loop. Em seguida, você usa essa variável dentro do corpo do loop. Como o loop para automaticamente no último elemento, o `foreach` elimina o risco de ler além do final da matriz.

using System;
namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args)
  {
   Int32[] values = new Int32[3] {1, 2, 3};
   foreach (Int32 item in values)
   {
    Console.WriteLine(item);
   }
   Console.ReadKey();
  }
 }
}

O exemplo acima declara e inicializa um array de três inteiros e, em seguida, percorre-o com um loop `foreach`. A cada iteração, a variável item recebe o próximo valor e Console.WriteLine o imprime. A saída são os números 1, 2 e 3 em linhas separadas.

Pontos-chave a lembrar sobre o uso de foreach com arrays:

  • A variável de loop é somente leitura, portanto, o método `foreach` é mais adequado para ler valores do que para alterá-los diretamente.
  • Para modificar elementos enquanto olhapingEm vez disso, use um loop for com um índice.
  • O método `foreach` funciona com arrays unidimensionais, arrays multidimensionais e qualquer coleção que suporte iteração.

Matrizes multidimensionais em C#

Os arrays mostrados até agora são unidimensionais, ou seja, armazenam uma lista simples de valores. O C# também suporta arrays multidimensionais, que organizam os elementos em uma grade de linhas e colunas. Um array bidimensional é a forma mais comum e adequada para dados como matrizes, tabuleiros de jogos e tabelas.

Você declara um array bidimensional colocando uma vírgula dentro dos colchetes. Cada vírgula extra adiciona uma dimensão, então `int[,]` é bidimensional e `int[,,]` é tridimensional. Os elementos são acessados ​​com um índice por dimensão.

using System;
namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args)
  {
   int[,] matrix = new int[2, 2] { {1, 2}, {3, 4} };
   Console.WriteLine(matrix[0, 0]);
   Console.WriteLine(matrix[1, 1]);
   Console.ReadKey();
  }
 }
}

Aqui, a matriz de array contém duas linhas e duas colunas. O elemento `matrix[0, 0]` retorna 1 e `matrix[1, 1]` retorna 4. O número de dimensões é fixo quando o array é declarado, enquanto o tamanho de cada dimensão é definido quando o array é criado.

C# Matrizes Irregulares

Um array irregular é um array cujos elementos são, eles próprios, arrays. Ao contrário de um array multidimensional retangular, cada array interno pode ter um comprimento diferente, razão pela qual um array irregular é frequentemente chamado de array de arrays. Essa flexibilidade é útil quando as linhas naturalmente contêm quantidades diferentes de valores.

Você declara um array irregular com dois conjuntos de colchetes e, em seguida, cria cada array interno separadamente. O exemplo a seguir constrói um array irregular onde a primeira linha contém três valores e a segunda linha contém dois.

using System;
namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args)
  {
   int[][] jagged = new int[2][];
   jagged[0] = new int[] {1, 2, 3};
   jagged[1] = new int[] {4, 5};
   Console.WriteLine(jagged[0][2]);
   Console.WriteLine(jagged[1][1]);
   Console.ReadKey();
  }
 }
}

A expressão jagged[0][2] lê o terceiro elemento da primeira linha, que é 3, e jagged[1][1] lê o segundo elemento da segunda linha, que é 5. Como cada linha é um array separado, os arrays irregulares usam a memória de forma eficiente quando os comprimentos das linhas variam, embora precisem de uma etapa extra para inicializar cada array interno.

Perguntas Frequentes

A propriedade Length retorna o número total de elementos em uma matriz C#. Por exemplo, values.Length retorna 3 para uma matriz de três elementos. Para matrizes multidimensionais, GetLength(dimension) retorna o tamanho de cada dimensão específica.

Em AC#, um array tem um tamanho fixo definido na sua criação, enquanto uma lista cresce e diminui dinamicamente. Arrays são mais rápidos para dados fixos e usam menos sobrecarga, enquanto uma lista é adequada para coleções cujo número de elementos muda em tempo de execução.

Um array padrão em C# armazena elementos de um único tipo declarado, portanto, misturar tipos não é permitido. Para armazenar tipos diferentes, declare um array de objetos (object[]) ou use uma coleção como ArrayList, embora ambas as opções sacrifiquem a segurança de tipos em tempo de compilação.

O método estático Array.Sort organiza os elementos de uma matriz C# em ordem crescente, diretamente no array. Passe a matriz para Array.Sort(values) e use Array.Reverse Em seguida, em ordem decrescente. A classificação funciona com números, strings e outros tipos semelhantes.

O método `Array.Copy` duplica um intervalo de elementos de um array para outro, enquanto o método `Clone` cria uma cópia superficial de todo o array. Atribuir uma variável de array a outra copia apenas a referência, não os elementos subjacentes.

Uma exceção `IndexOutOfRangeException` ocorre quando o código acessa uma posição de array que não existe, como `values[5]` em um array de três elementos. Como os arrays em C# são indexados a partir de zero, os índices válidos variam de 0 até o comprimento menos um. Sempre verifique o índice primeiro.

Sim. O GitHub Copilot sugere declarações de arrays, inicialização e lógica de loop a partir de um comentário ou nome de método dentro do Visual Studio e VS Code. RevAnalise cada sugestão para dimensionamento correto e limites de índice, pois o Copilot pode introduzir erros de unidade e valores fora do intervalo.

O ML.NET representa vetores de características e entradas de modelos como arrays C#, tipicamente arrays de float[]. Os dados de treinamento são carregados em arrays ou spans, e as previsões retornam arrays de pontuações. O tamanho fixo e a indexação rápida dos arrays os tornam eficientes para pipelines de aprendizado de máquina.

Resuma esta postagem com: