Quando in C# vogliamo inizializzare una lista di oggetti all'atto della costruzione della lista, abbiamo a disposizione una sintassi molto semplice: dopo il costruttore si aprono le parentesi graffe, si inseriscono gli oggetti separati da virgola e poi si chiudono le parentesi graffe. Un esempio viene mostrato qui sotto.
var l = new List<int>() { 1,2,3,4,5 }; var a = new [] { 1,2,3,4,5 };
A partire dalla versione 12 di C#, abbiamo a disposizione una nuova sintassi ispirata a linguaggi come JavaScript e Python: collection initializer. Con questa nuova sintassi possiamo omettere sia il costruttore che le parentesi graffe e includere semplicemente gli oggetti in parentesi quadre.
List<int> l = [1,2,3,4,5];
Come si vede nell'esempio, la sintasi è più compatta rispetto al passato. Va tuttavia notato che questa sintassi implica l'impossibilità di usare var per dichiarare una variabile. Le collection expression istanziano e inizializzano la variabile in base al suo tipo. Quando si utilizza var, il tipo viene dichiarato a destra dell'uguale, ma essendoci a destra il collection initializer che non esprime un tipo, il compilatore non saprebbe che tipo istanziare e siamo quindi obbligati a dichiararlo a sinistra.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Configurare policy CORS in Azure Container Apps
Gestire i null nelle reactive form tipizzate di Angular
Eseguire query verso tipi non mappati in Entity Framework Core
Code scanning e advanced security con Azure DevOps
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
Utilizzare la session affinity con Azure Container Apps
Usare un KeyedService di default in ASP.NET Core 8
Migliora le tue soluzioni ASP.NET Core con Azure OpenAI
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Configurare il nome della run di un workflow di GitHub in base al contesto di esecuzione
gRPC con .NET
Evitare la script injection nelle GitHub Actions