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
Usare le navigation property in QuickGrid di Blazor
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Ordinare randomicamente una lista in C#
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
Recuperare App Service cancellati su Azure
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Gestire gli accessi con Token su Azure Container Registry
Supportare lo HierarchyID di Sql Server in Entity Framework 8
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API