Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Declarar vetor
  2. Acessando/alterando elementos
  3. Quantidade de elementos
  4. Percorrendo um vetor
  5. Copiando vetor
  6. Comparar vetores
  7. Verificando vetor
  8. Ordenar um vetor
  9. Iniciar vetor com elementos repetidos
  10. Vetor como parâmetro/argumento e retorno
  11. Copiar parte de um vetor
  12. Propriedades Array
  13. Métodos da Classe Array

Em C# podemos criar vetores a partir dos tipos de dados já estudados. Podemos enxergar um vetor como um local para armazenar várias variáveis de forma sequencial.

Nesta parte do tutorial vamos estudar vetores estáticos apenas.

Tab. 1: Abstração de um vetor de int
0 1 2 3 4 5 (...)
0 10 20 30 40 50 ?

As operações mais complexas que envolvem vetores devem ser realizadas utilizando os métodos da classe Array.

A declaração de um vetor em C# é feita utilizando um tipo de dado desejado e sua dimensão entre [ e ] que lembra a sintaxe utilizada pelas linguagens C/C++.

Sintaxe: Iniciado
tipo_dado[] nome_var = {elem1,elem2,elemN}; //iniciado

tipo_dado[] nome_var = [elem1,elem2,elemN];
Sintaxe: Espaço reservado
tipo_dado[] nome_var = new tipo_dado[num_elementos];

Um vetor com valores iniciados devem ter seus valores, baseados no tipo de dado utilizado, delimitados por { ou ] e } ou ], separados por (,) e terminados com (;):

Exemplo 1
using System;

public class HelloWorld
{
    public static void Main(string[] args)
    {
        int[] v1 = {1,2,3};
    	int[] v2 = [1,2,3];
        int[] v3 = new int[3]; //espaço reservado
    }
}
Saída
-

O tipo de dado int foi utilizado no exemplo acima, mas outros tipos de dados primitivos e do usuário também podem ser utilizados.

O acesso aos elementos de vetor é feito utilizando o seus índices qu são passados como argumetos para o indexador [] como pode ser visto no exemplo 2 abaixo:

Sintaxe
nome_vetor[indice] = valor;
nome_vetor[indice];
Exemplo 2
using System;

public class HelloWorld
{
    public static void Main(string[] args)
    {
        int[] vetor = {1,2,3};
        Console.WriteLine(vetor[2]);
        vetor[2] = 4;
        Console.WriteLine(vetor[2]);
    }
}
            
Saída
3
4

Utilizando a propriedade Length de um vetor, podemos descobrir o número de elementos que esse possui. Essa propriedade não pode ser utilizada para redimensionar um vetor.

Sintaxe
nome_vetor.Length;
Exemplo 2
using System;

public class HelloWorld
{
    public static void Main(string[] args)
    {
        int[] vetor = {1,2,3};
        Console.WriteLine(vetor.Length);
    }
}
Saída
3

Para iterarmos ou percorrermos vetores em C#, podemos utilizar o comando for ou foreach que foram estudados em C# Comandos: Repetição.

Exemplo 3
using System;

public class HelloWorld
{
    public static void Main(string[] args)
    {
        int[] v1 = {1,2,3};
        
        for( int i=0; i < v1.Length; i++)
            Console.Write(v1[i]);
        
         foreach (int i in v1)
			Console.WriteLine(i);
    }
}
Saída
123
1
2
3

Para copiarmos o conteúdo vetores, podemos utilizar a classe Array que possui o métodos Copy, cuja sintaxe pode ser vista abaixo:

Sintaxe
Array.CopyOf(Array source, Array dest, int count)
Onde
source : vetor que será copiado
dest: vetor destino da cópia
count: quantidade de elementos para copiar. Length para copiar todo vetor.
Exemplo 3
using System; //Array

public class HelloWorld
{
    public static void Main(string[] args)
    {
        int[] v1 = {1,2,3};
        int[] v2 = new int[3];
        
         Array.Copy(v1,v2,v1.Length);
        
        for( int i=0; i < v2.Length; i++)
            Console.Write(v2[i]);
    }
}
Saída
123

Existem outras formas para copiar o conteúdo de um vetor, porém serão vistas em futuras atualizações.

Para comparar dois vetores, podemos utilizar o método SequenceEqual que pertence ao namespace Linq.

Sintaxe
bool SequenceEqual( Array first, Array second )
Onde
firt, second : Vetores para comparação
Retorno
true se first e second são iguais, false caso contrário.

Para uso da classe Linq acima, é necessário fazer sua importação:

using System.Linq
Exemplo 4
using System;
using System.Linq;

public class HelloWorld
{
    public static void Main(string[] args)
    {
        int[] v1 = {1,2,3};
        int[] v2 = {1,2,3};
        
        bool iguais = v1.SequenceEqual(v2);
        
        Console.WriteLine(iguais);
    }
}
Saída
True

Existem outras formas para comparar o conteúdo de um vetor, porém serão vistas em futuras atualizações

Para verificar se uma vetor possui elementos, usamos a propriedade Length. Caso um vetor seja declarado como um tipo nullable, a verificação de null deve também ser utilizada.

Sintaxe:
nome_vetor.Length()

nome_vetor == null
Retorno
0 se nome_vetor está vazio,  > 0  caso contrário.
true se nome_vetor igual a null, false caso contrário 
Exemplo 5
using System;

public class HelloWorld
{
    public static void Main(string[] args)
    {
        int[] v1 = {1,2,3};
		int[] v2 = [];
		int?[] v3 = null;

        //length
		Console.WriteLine(v1.Length);
		Console.WriteLine(v2.Length);
        //null
		Console.WriteLine(v3 == null);
    }
}
Saída
3
0
True

Há outros métodos para verificação de elementos em vetores que serão vistos mais adiante na seção sobre métodos.

Em situações que precisamos ordenar nossos vetores, o método Sort da classe Array realiza essa ordenação de forma ascedente. Para ordenação descendente, o método Reverse deve ser utilizado em seguida.

Sintaxe:
Array.Sort(Array nome_array) //ascendente
Array.Reverse(Array nome_array);
Retorno
Vetor ordenado ascendente ou descente
Exemplo 6
using System;

public class HelloWorld
{
    public static void Main(string[] args)
    {
        int[] v1 = {3,1,2,5,7,6,4};
		
		Array.Sort(v1);
		
		foreach( int i in v1)
			Console.Write(i);
		
		Array.Reverse(v1);
		Console.WriteLine();
		
		foreach( int i in v1)
			Console.Write(i);
    }
}
Saída
1234567
7654321

Há outros formas para ordenar de elementos em vetores utilizando métodos de extensão linq que serão vistos em suas respectivas seções.

Para realizar operações mais complexas em vetores, a classe Array do .NET fornece os métodos listados na tabela abaixo:

Tab. 1: Métodos: Classe Array
Método Descrição
AsReadOnly Retornar um wrapper readonly Visitar
BinarySearch Busca um elemento em um array Visitar
Clear Seta elementos de um array para valor default Visitar
Clone Retorna um clone de um array Visitar
ConstrainedCopy - Visitar
ConvertAll - Visitar
Copy Retorna a cópia de um array Visitar
CopyTo Copia elemento para outro array Visitar
CreateInstance - Visitar
Empty Retorna um array vazio Visitar
Equals Compara vetores Visitar
Exists Verifica se elemento existe Visitar
Fill Preenche array com valor Visitar
Find Procura primeira ocorrência de elemento Visitar
FindAll Procura todos ocorrências de elemento Visitar
FindLastIndex - Visitar
ForEach Executa ação para cada elemento Visitar
FindLast - Visitar
GetEnumerator Retorna enumerador Visitar
FindLast - Visitar
GetHashCode - Visitar
GetLength Retorna quantidade de elementos. 32-bits Visitar
GetLongLength Retorna quantidade de elementos. 32-bits Visitar
GetLowerBound Retorna primeiro elemento de uma dimensão Visitar
GetType - Visitar
GetUpperBound Retorna último elemento de uma dimensão Visitar
GetValue Retorna o elemento em um índice/posição Visitar
IndexOf - Visitar
Initialize - Visitar
LastIndexOf - Visitar
MemberwiseClone - Visitar
Resize Redimensiona um vetor Visitar
Reverse - Visitar
SetValue - Visitar
Sort Ordena um vetor Visitar
ToString - Visitar
TrueForAll - Visitar
  1. 07/08/2025 - revisão 2 - Ajustes: pontuais, sintaxes, descrição 'métodos'; Adição: 'Verificando' e 'Ordenando'
  2. 14/10/2024 - revisão 1 - Correções gramaticais pontuais
  3. 07/03/2024 - versão inicial