C# · Avançado · Inglês · Técnico
list pattern
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, ..]); // TrueExemplos
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.