Negli ultimi anni, molte delle funzionalità di C# sono state aggiunte prendendo spunto da altri linguaggi. I range per le liste e la string interpolation sono tipici esempi di quest'affermazione in quanto sono fnzionalità già presenti da tempo in linguaggi come JavaScript e Python. Un'altra funzionalità presente da sempre in questi linguaggi è quella di creare liste di elementi con una sintassi estremamente compatta se confrontata con quella del C#.
A partire da C# 12, possiamo usare la sintassi del prossimo esempio per creare e inizializzare liste di oggetti.
int[] numbers = [10, 2, 4, 0]; List<string> b = ["1", "2", "5"];
Come si vede dal codice, basta inserire i valori tra parentesi quadre e C# creerà la struttura per noi.
E' importante specificare che i collection initializer servono a inizializzare gli elementi di una lista in modo veloce, ma non hanno un tipo dietro. Questo significa che la seguente istruzione genera un errore di compilazione.
var x = [1,2,3];
L'errore è dovuto al fatto che un collection initializer si preoccupa di aggiungere gli elementi a un tipo già definito, non di creare un tipo. Il risultato è che il compilatore non saprebbe che tipo assegnare alla variabile x.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Ottimizzare la latenza in Blazor 8 tramite InteractiveAuto render mode
Generare velocemente pagine CRUD in Blazor con QuickGrid
Utilizzare i primary constructor di C# per inizializzare le proprietà
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Generare token per autenicarsi sulle API di GitHub
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Utilizzare la versione generica di EntityTypeConfiguration in Entity Framework Core
Utilizzare un service principal per accedere a Azure Container Registry
Estrarre dati randomici da una lista di oggetti in C#
Usare lo spread operator con i collection initializer in C#
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8
Eseguire query manipolando le liste contenute in un oggetto mappato verso una colonna JSON