Eu tinha um código como este:
Queue<Foos> queue;
// ...
Foo[] foos = queue.ToArray();
No entanto, o Visual Studio dá uma sugestão IDE0305 A inicialização da coleção pode ser simplificada , sugerindo em vez disso:
Foo[] foos = [.. queue];
O código parece ser construído e executado corretamente. O que essa sintaxe de pontos e colchetes significa?
Ambos os operadores
[]
e..
são suportados no C# 12.[]
é a expressão de coleção que permite a criação do array/coleção em vez da maneira tradicional como:Enquanto isso,
..
o operador de spread permite adicionar todos os elementos na expressão.Em resumo, com base no seu código existente, ele criará uma nova
Foo
matriz adicionando todos os elementos doqueue
.Inclui o artigo sobre C# 12: Expressões de coleção escrito por Thomas Claudius.