Arrays



Em C#, um array é uma estrutura de dados que armazena uma coleção de elementos do mesmo tipo em uma ordem sequencial. Os elementos em um array são acessados por meio de um índice numérico, começando por 0 para o primeiro elemento. Arrays são muito úteis para armazenar e manipular conjuntos de dados de maneira eficiente. Aqui está uma introdução básica sobre como os arrays funcionam em C#:

Declaração e Inicialização: Você pode declarar e inicializar um array em C# de várias maneiras, mas a forma mais comum é:

tipo[] nomeDoArray = new tipo[tamanho];

Por exemplo, para criar um array de inteiros com 5 elementos:

int[] numeros = new int[5];

Acesso aos elementos: Os elementos de um array são acessados usando índices. O primeiro elemento está no índice 0, o segundo no índice 1 e assim por diante. Por exemplo:

numeros[0] = 10; // Atribui o valor 10 ao primeiro elemento do array int segundoNumero = numeros[1]; // Lê o valor do segundo elemento do array

Comprimento do Array: O comprimento de um array (ou seja, o número de elementos que ele pode armazenar) é fixo após a inicialização. Você pode acessar o comprimento usando a propriedade Length:

int tamanhoDoArray = numeros.Length;

Iteração sobre um Array: Você pode percorrer os elementos de um array usando um loop for ou foreach. Aqui está um exemplo com for:

for (int i = 0; i < numeros.Length; i++) { Console.WriteLine(numeros[i]); }

E um exemplo com foreach:

foreach (int numero in numeros) { Console.WriteLine(numero); }

Arrays Multidimensionais: C# também suporta arrays multidimensionais (matrizes). Por exemplo, uma matriz 2D (bidimensional) pode ser declarada assim:

tipo[,] nomeDaMatriz = new tipo[linhas, colunas];

Quando falamos de "arrays multidirecionais" em C#, geralmente estamos nos referindo a arrays com mais de duas dimensões. Embora arrays bidimensionais sejam os mais comuns, C# permite criar arrays com três ou mais dimensões para atender às necessidades de situações mais complexas. Aqui estão algumas informações sobre arrays multidirecionais em C#: Declaração e Inicialização: Você pode criar arrays com três ou mais dimensões da seguinte forma:

tipo[,,] nomeDoArray = new tipo[comprimentoDim1, comprimentoDim2, comprimentoDim3];

Por exemplo, para criar um array tridimensional de inteiros:

int[,,] arrayTridimensional = new int[3, 4, 5];

Acesso aos Elementos: Para acessar os elementos em arrays multidirecionais, você precisará usar índices para cada dimensão. Os índices começam em 0 para todas as dimensões. Por exemplo:

arrayTridimensional[0, 1, 2] = 42 // Define o valor 42 para o elemento correspondente int valor = arrayTridimensional[2, 3, 1]; // Obtém o valor do elemento correspondente

Comprimento das Dimensões: Você pode usar o método GetLength() ou as propriedades GetLength() para obter os tamanhos das diferentes dimensões:

int comprimentoDim1 = arrayTridimensional.GetLength(0); int comprimentoDim2 = arrayTridimensional.GetLength(1); int comprimentoDim3 = arrayTridimensional.GetLength(2);

Iteração sobre um Array Multidimensional: A iteração em arrays multidirecionais envolve loops aninhados para cada dimensão. Por exemplo, para percorrer todos os elementos em um array tridimensional:

for (int i = 0; i < comprimentoDim1; i++) { for (int j = 0; j < comprimentoDim2; j++) { for (int k = 0; k < comprimentoDim3; k++) { Console.WriteLine(arrayTridimensional[i, j, k]); } } }

Arrays de Dimensões Variáveis: Além de arrays com dimensões fixas, C# também suporta arrays de dimensões variáveis. Isso permite criar arrays "jagged", onde cada elemento da matriz é um array de tamanho variável.

tipo[][][] nomeDoArray = new tipo[tamanhoDim1][][];

Os arrays de dimensões variáveis podem ser úteis quando você precisa lidar com situações onde as dimensões não são uniformes em toda a matriz. Arrays multidirecionais são úteis em situações onde você precisa representar dados em várias dimensões, como matrizes tridimensionais (usadas em jogos 3D, por exemplo) ou até mesmo em cálculos científicos e simulações complexas.

Os arrays em C# vêm com alguns métodos úteis que podem ser usados para manipular e trabalhar com os elementos contidos neles. Aqui estão alguns dos métodos mais comuns que estão disponíveis para arrays: 

Length ou GetLength(int dimension): Retorna o número total de elementos no array (tamanho total) ou o comprimento da dimensão especificada.

Rank: Retorna o número de dimensões do array.

GetValue(int index) ou GetValue(int index1, int index2, ...): Retorna o valor do elemento no índice especificado ou nos índices especificados para arrays multidimensionais.

SetValue(object value, int index) ou SetValue(object value, int index1, int index2, ...): Define o valor do elemento no índice especificado ou nos índices especificados.

CopyTo(Array destinationArray, int index): Copia todos os elementos do array atual para outro array começando a partir do índice especificado no array de destino.

IndexOf(object value) ou IndexOf(object value, int startIndex) ou IndexOf(object value, int startIndex, int count): Retorna o índice da primeira ocorrência do valor especificado no array, começando a busca a partir do índice startIndex. 

LastIndexOf(object value) ou LastIndexOf(object value, int startIndex) ou LastIndexOf(object value, int startIndex, int count): Retorna o índice da última ocorrência do valor especificado no array, começando a busca a partir do índice startIndex.

Sort() ou Sort(Array array) ou Sort(Array array, int index, int length): Classifica os elementos no array em ordem crescente.

Reverse() ou Reverse(Array array) ou Reverse(Array array, int index, int length): Inverte a ordem dos elementos no array.

Copy(Array sourceArray, Array destinationArray, int length): Copia um número específico de elementos do array de origem para o array de destino.

Clear(Array array, int index, int length): Define um intervalo de elementos no array como valores padrão (0 para tipos numéricos, null para referências etc.).

ForEach(Action<T> action): Executa uma ação para cada elemento do array, usando uma expressão lambda ou método delegate.

using System; class Program { static void Main() { int[] numeros = { 4, 2, 8, 1, 5, 9, 3, 7, 6 }; // Length int tamanho = numeros.Length; Console.WriteLine("Tamanho do array: " + tamanho); // Tamanho do array: 9 // GetValue e SetValue int primeiroNumero = (int)numeros.GetValue(0); numeros.SetValue(10, 0); // CopyTo int[] copia = new int[numeros.Length]; numeros.CopyTo(copia, 0); // IndexOf int indice = Array.IndexOf(numeros, 5); Console.WriteLine("Índice do valor 5: " + indice); // Índice do valor 5: 4 // LastIndexOf int ultimoIndice = Array.LastIndexOf(numeros, 5); Console.WriteLine("Último índice do valor 5: " + ultimoIndice); // Último índice do valor 5: 4 // Sort Array.Sort(numeros); Console.WriteLine("Array ordenado:"); Array.ForEach(numeros, num => Console.Write(num + " ")); // Array ordenado: 1 2 3 4 5 6 7 8 9 // Reverse Array.Reverse(numeros); Console.WriteLine("\nArray invertido:"); Array.ForEach(numeros, num => Console.Write(num + " ")); // Array invertido: 9 8 7 6 5 4 3 2 1 // Copy int[] destino = new int[numeros.Length]; Array.Copy(numeros, destino, numeros.Length); Console.WriteLine("\nArray copiado:"); Array.ForEach(destino, num => Console.Write(num + " ")); // Array copiado: 9 8 7 6 5 4 3 2 1 // Rank int rank = numeros.Rank; Console.WriteLine("\nNúmero de dimensões (rank) do array: " + rank); // Número de dimensões (rank) do array: 1 // ForEach Console.WriteLine("\nElementos do array:"); Array.ForEach(numeros, num => Console.Write(num + " ")); // Elementos do array: 9 8 7 6 5 4 3 2 1 } }

Lembre-se de que esses são apenas alguns dos métodos disponíveis para arrays em C#. Você pode consultar a documentação oficial da linguagem C# ou a documentação específica para arrays para obter uma lista completa de métodos e detalhes sobre como usá-los.

Comentários

Postagens mais visitadas