English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Variáveis são usadas para armazenar valores literais, enquanto arrays são usados para armazenar múltiplos valores literais.
Um array é uma estrutura de dados que armazena um número fixo de valores textuais (elementos) do mesmo tipo de dados. Os elementos do array são armazenados continuamente na memória.
No C#, os arrays podem ser de três tipos: array unidimensional, array multidimensional e array de espada. Aqui, você vai aprender sobre o array unidimensional.
A figura a seguir ilustra a forma de representação do array.
Você pode usar colchetes para especificar o tipo de elemento do array para declarar um array.
int[] evenNums; // array de inteiros string[] cities; // array de strings
A seguinte instrução declara e adiciona valores ao array em uma única instrução.
int[] evenNums = new int[5]{ 2, 4, 6, 8, 10 }; string[] cities = new string[3]{ "Mumbai", "London", "New York" };
No exemplo acima, o array evenNums pode armazenar no máximo cinco inteiros. new int[5] o número entre os colchetes 5 é o tamanho do array especificado. Da mesma forma, o tamanho do array cities é3Os elementos do array são adicionados à lista entre chaves {} separados por vírgulas.
Variáveis de tipo de array podem ser declaradas com var, sem colchetes [].
var evenNums = new int[]{ 2, 4, 6, 8, 10}; var cities = new string[]{ "Mumbai", "London", "New York" };
Se adicionar elementos ao array na declaração, o size é opcional. O compilador deduz o tamanho com base no número de elementos entre os colchetes, conforme mostrado a seguir.
int[] evenNums = { 2, 4, 6, 8, 10}; string[] cities = { "Mumbai", "London", "New York" }
O seguinte exemplo demonstra declaração de array inválida.
//É necessário especificar o tamanho int[] evenNums = new int[]; //O número de elementos deve ser igual ao tamanho especificado int[] evenNums = new int[5] { 2, 4 }; //Não pode ser usado var com inicialização de array var evenNums = { 2, 4, 6, 8, 10};
Não é necessário declarar e inicializar um array em uma única instrução. Você pode declarar um array primeiro e, em seguida, inicializá-lo com o operador new.
int[] evenNums; evenNums = new int[5]; // ou evenNums = new int[]{ 2, 4, 6, 8, 10 };
Pode-se usar índice para acessar elementos de um array. O índice é um número associado a cada elemento do array, começando do índice 0 até o tamanho do array-1 fim.
Os seguintes exemplos usam índice para adicionar/atualização e recuperação de elementos de um array.
int[] evenNums = new int[5]; evenNums[0] = 2; evenNums[1] = 4; //evenNums[6] = 12; //lança uma exceção de tempo de execução IndexOutOfRange Console.WriteLine(evenNums[0]); //Saída 2 Console.WriteLine(evenNums[1}); //Saída 4
Atenção, tentar adicionar um elemento além do tamanho especificado lançará a exceção IndexOutOfRangeException.
Usar loop for para acessar o elemento do array. Use a propriedade length do array na expressão de condição do loop.
int[] evenNums = { 2, 4, 6, 8, 10 }; for (int i = 0; i < evenNums.Length; i++} Console.WriteLine(evenNums[i]); } for (int i = 0; i < evenNums.Length; i++} evenNums[i] = evenNums[i] + 10; // Atualizar o valor de cada elemento10 }
Usar loop foreach para ler o valor do elemento do array sem usar índice.
int[] evenNums = { 2, 4, 6, 8, 10}; string[] cities = { "Mumbai", "London", "New York" }; foreach (var item in evenNums) { Console.WriteLine(item); } foreach (var city in cities) { Console.WriteLine(city); }
Todos os arrays no C# derivam da classe base abstrata System.Array.
A classe Array implementou a interface IEnumerable, permitindo usar métodos de extensão LINQ, como Max(), Min(), Sum(), reverse() e outros.
int[] nums = new int[5]{ 10, 15, 16, 8, 6 }; nums.Max(); // Retornar16 nums.Min(); // Retornar6 nums.Sum(); // Retornar55 nums.Average(); // Retornar55
A classe System.Array também inclui métodos para criar, operar, buscar e ordenar arrays.
int[] nums = new int[5]{ 10, 15, 16, 8, 6 }; Array.Sort(nums); // Ordenar o array Array.Reverse(nums); // Ordenar o array em ordem decrescente Array.ForEach(nums, n => Console.WriteLine(n)); // Iterar o array Array.BinarySearch(nums, 5);// Busca binária
Pode passar um array como parâmetro para os argumentos do método. O array é um tipo de referência, portanto, esse método pode alterar o valor dos elementos do array.
public static void Main() { int[] nums = { 1, 2, 3, 4, 5 }; UpdateArray(nums); foreach(var item in nums) Console.WriteLine(item); } public static void UpdateArray(int[] arr) { for(int i = 0; i < arr.Length;++) arr[i] = arr[i] + 10; }
Próximo Array Multidimensional e Array de dentes.