mario.deghetto

Visual Basic & .NET
posts - 332, comments - 79, trackbacks - 0

VB 2010: Collection Initializers

E' stato semplificato il modo per definire e inizializzare una collezione, inserendo gli elementi che la compongono con un'unica istruzione.

Per esempio, per inserire degli elementi all'interno di una List e di un Dictionary, prima dovevamo utilizzare tante istruzioni quanti gli elementi da inserire, ciascuna delle quali chiamava il metodo Add dell'oggetto:

 

Visual Basic
  1.     Dim miaListaSoftware As New List(Of String)
  2.     With miaListaSoftware
  3.       .Add("Visual Studio 2010")
  4.       .Add("Visual Basic 2010 Express")
  5.       .Add("Visual C# 2010 Express")
  6.       .Add("Visual Web Developer 2010 Express")
  7.       .Add("Visual C++ 2010 Express")
  8.     End With
  9.     Dim mioDizionario As New Dictionary(Of Integer, String)
  10.     mioDizionario.Add(1, "VB")
  11.     mioDizionario.Add(2, "C#")
  12.     mioDizionario.Add(3, "F#")
  13.     mioDizionario.Add(4, "C++")

 

Anche ora possiamo utilizzare questa sintassi, ma ne possiamo utilizzare anche una alternativa:

 

Visual Basic
  1.     Dim miaListaSoftware As New List(Of String) From {
  2.         "Visual Studio 2010",
  3.         "Visual Basic 2010 Express",
  4.         "Visual C# 2010 Express",
  5.         "Visual Web Developer 2010 Express",
  6.         "Visual C++ 2010 Express"}
  7.     Dim mioDizionario As New Dictionary(Of Integer, String) From
  8.         {{1, "VB"}, {2, "C#"}, {3, "F#"}, {4, "C++"}}

 

Per motivi di spazio e di leggibilità abbiamo suddiviso le istruzioni su più righe, ma avremmo potuto scrivere entrambe le istruzioni su un'unica riga.

Notate il nuovo uso della clausola From che permette di inserire un elenco di elementi racchiusi tra parentesi graffe. Nel caso della seconda istruzione, poi, trattandosi di coppie di elementi da inserire, le parentesi graffe sono nidificate.

Dietro le quinte, Visual Basic chiama ancora il metodo Add dei due oggetti, ma lo fa senza obbligarci a specificarlo in modo esplicito.

Print | posted on venerdì 17 giugno 2011 6.43 |

Feedback

No comments posted yet.

Post Comment

Title  
Name  
Email
Url
Comment   
Please add 4 and 5 and type the answer here:

Powered by: