0Pricing
C# Academy · Aula

Sintaxe de expressões de coleção

Inicialize matrizes, listas e spans de maneira uniforme.

Sintaxe de expressões de coleção é uma aula grátis de C# Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C# Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C# Academy inclui 4 aulas no total.

Expressões de coleção (C# 12)

O C# 12 introduz expressões de coleção: uma única sintaxe de colchetes para criar matrizes, listas, segmentos de memória e muito mais. Em vez de new int[] { 1, 2, 3 }, basta escrever [1, 2, 3].

using System;

int[] numbers = [1, 2, 3, 4, 5];
Console.WriteLine(string.Join(",", numbers)); // 1,2,3,4,5

Uma sintaxe, muitos destinos

O mesmo literal [...] funciona quando o destino é uma matriz, um List<T> ou um Span<T>. O compilador escolhe a construção adequada.

using System;
using System.Collections.Generic;

int[] arr = [1, 2, 3];
List<int> list = [4, 5, 6];
Span<int> span = [7, 8, 9];
Console.WriteLine(arr.Length + " " + list.Count + " " + span.Length);

Coleções vazias

Uma expressão de coleção vazia é simplesmente []. Ela é mais clara do que Array.Empty<T>() ou new List<T>() e determina o tipo de destino automaticamente.

using System;
using System.Collections.Generic;

int[] empty = [];
List<string> names = [];
Console.WriteLine(empty.Length + " " + names.Count); // 0 0

Substituindo inicializadores prolixos

As expressões de coleção eliminam a verbosidade da sintaxe antiga de inicializadores. Compare as duas formas abaixo.

using System;
using System.Collections.Generic;

// old
List<int> oldWay = new List<int> { 1, 2, 3 };
// new
List<int> newWay = [1, 2, 3];
Console.WriteLine(oldWay.Count == newWay.Count); // True

Coleções aninhadas

É possível aninhar expressões de coleção para criar matrizes denteadas ou listas de listas.

using System;

int[][] grid = [[1, 2], [3, 4], [5, 6]];
Console.WriteLine(grid[1][0]); // 3

Expressões como elementos

Os elementos podem ser qualquer expressão, incluindo variáveis, chamadas de método e operações aritméticas.

using System;

int x = 10;
int[] values = [x, x * 2, x + 5, Math.Abs(-3)];
Console.WriteLine(string.Join(",", values)); // 10,20,15,3

Observação sobre matrizes multidimensionais

As expressões de coleção criam matrizes denteadas (int[][]), não matrizes retangulares (int[,]). As matrizes retangulares continuam usando sua própria sintaxe.

using System;

int[][] jagged = [[1, 2, 3], [4, 5]];
Console.WriteLine(jagged[0].Length + " " + jagged[1].Length); // 3 2

Trabalhando com intervalos

Como as expressões de coleção podem ter como destino Span<T> e ReadOnlySpan<T>, o compilador pode usar alocação na pilha, evitando lixo no heap para dados de curta duração.

using System;

ReadOnlySpan<int> stackData = [1, 2, 3, 4];
int total = 0;
foreach (int n in stackData) total += n;
Console.WriteLine(total); // 10

Passando coleções para métodos

Quando o tipo de um parâmetro é uma coleção, é possível passar uma expressão de coleção diretamente no local da chamada.

using System;

static int Sum(int[] xs) {
    int t = 0;
    foreach (int x in xs) t += x;
    return t;
}

Console.WriteLine(Sum([2, 4, 6])); // 12

Ganhos de legibilidade

As expressões de coleção são especialmente úteis em código com muitos dados, como tabelas de configuração ou dados de teste, em que os colchetes mantêm o foco nos valores.

using System;

string[] days = ["Mon", "Tue", "Wed", "Thu", "Fri"];
Console.WriteLine(days[^1]); // Fri

Retornando coleções

Um método pode retornar uma expressão de coleção, com o tipo de retorno orientando sua construção.

using System;

static int[] Primes() => [2, 3, 5, 7, 11];

Console.WriteLine(string.Join(",", Primes())); // 2,3,5,7,11

Verificação rápida

Verifique sua compreensão dos conceitos básicos das expressões de coleção.

Recapitulação

Você aprendeu a sintaxe de expressões de coleção do C# 12.

  • [1, 2, 3] substitui inicializadores prolixos.
  • [] é uma coleção vazia.
  • Ela usa tipagem pelo destino: matrizes, listas e intervalos funcionam.
  • Colchetes aninhados criam matrizes denteadas.

Perguntas Frequentes

A aula “Sintaxe de expressões de coleção” é grátis?

Sim — o texto completo de “Sintaxe de expressões de coleção” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C# Academy, atualize para CoddyKit PRO. O curso de C# Academy inclui 4 aulas no total.

O que vou aprender em “Sintaxe de expressões de coleção”?

Inicialize matrizes, listas e spans de maneira uniforme. Você pratica C# Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar C# Academy?

Nenhuma experiência prévia é necessária. C# Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Sintaxe de expressões de coleção”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de C# Academy?

Sim. Cada aula de C# Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Sintaxe de expressões de coleção
  2. O elemento de expansão
  3. Tipagem pelo destino em coleções
  4. Construtores de coleções
← Voltar para C# Academy