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
Le novità di Angular: i miglioramenti alla CLI
Assegnare un valore di default a un parametro di una lambda in C#
Filtering sulle colonne in una QuickGrid di Blazor
Gestire domini wildcard in Azure Container Apps
Creare alias per tipi generici e tuple in C#
Creare gruppi di client per Event Grid MQTT
Generare un hash con SHA-3 in .NET
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Eseguire query per recuperare il padre di un record che sfrutta il tipo HierarchyID in Entity Framework
Paginare i risultati con QuickGrid in Blazor
Sblocca le performance della tua applicazione con .NET 8
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8