ExpertiDict

C# · Avançado · Inglês · Técnico

list pattern

/lɪst ˈpætɚn/substantivo

Padrão do C# 11 que casa com listas e arrays pelo comprimento e pelos elementos, usando colchetes, descarte _ e o padrão de fatia .. para o restante.

Onde usar

Aparece ao processar argumentos e tokens: [var cmd, .. var resto] separa a cabeça do restante. Funciona com arrays, strings e tipos que têm Length ou Count e indexador.

Em código

int[] v = { 1, 2, 3, 4 };
if (v is [var primeiro, .., var ultimo])
  Console.WriteLine($"{primeiro}-{ultimo}");
Console.WriteLine(v is [1, 2, ..]);  // True

Exemplos

A list pattern lets me grab the first and last items.

Um list pattern me deixa pegar o primeiro e o último item.

The pattern [1, 2, ..] matches any list that starts with 1 and 2.

O padrão [1, 2, ..] casa com qualquer lista que começa com 1 e 2.

Cuidado

O padrão .. só pode aparecer uma vez por lista, e um IEnumerable puro não serve, porque não tem comprimento nem índice.

Veja também

Todos os termos de C#