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
Change tracking e composition in Entity Framework
Usare lo spread operator con i collection initializer in C#
Utilizzare il nuovo modello GPT-4o con Azure OpenAI
Come EF 8 ha ottimizzato le query che usano il metodo Contains
Ordine e importanza per @layer in CSS
Ottimizzare la latenza in Blazor 8 tramite InteractiveAuto render mode
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
Paginare i risultati con QuickGrid in Blazor
Sviluppare un'interfaccia utente in React con Tailwind CSS e Preline UI
Migrare una service connection a workload identity federation in Azure DevOps
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database