Blog sebelumnya seputar Fitur-fitur VB10 dapat anda baca di:
Collection Initializer digunakan untuk menginisialisasi object collection dalam sebuah baris kode saja, sehingga mempermudah penulisan kode.
Pada VB9 untuk menginisialisasi object Collection anda harus menuliskan kode:
1: Dim objNama As New List(Of String)
2: objNama.Add("Erick")
3: objNama.Add("Wely")
4: objNama.Add("Lutfie")
5: objNama.Add("Ridi")
6:
7: For Each nama In objNama
8: Console.WriteLine(nama)
9: Next
Pada VB10 dengan menggunakan Collection Initializer anda dapat menggunakan keyword ‘from’ untuk mempersingkat penulisan kode diatas.
1: Dim objNama As New List(Of String) From {"erick", "wely", "lutfie", "ridi"}
2: For Each nama In objNama
3: Console.WriteLine(nama)
4: Next
Anda juga dapat menggunakannya untuk object Dictionary
1: Dim dictMahasiswa As New Dictionary(Of String, String) From {
2: {"23080008", "erick"},
3: {"23080009", "budi"},
4: {"23080010", "anton"}}
5: For Each mhs In dictMahasiswa
6: Console.WriteLine("Nim :" & mhs.Key & "Nama :" & mhs.Value)
7: Next
Jika anda ingin menginisialisasi list of class maka anda dapat menggunakan extension method untuk mengoverride method ‘add’ yang ada pada object collection.
1: Imports System.Runtime.CompilerServices
2: Module Module1
3: 'menggunakan extension method
4: <Extension()>
5: Sub Add(ByVal lstMhs As List(Of Mahasiswa),
6: ByVal nim As String,
7: ByVal nama As String,
8: ByVal ipk As Double)
9: lstMhs.Add(New Mahasiswa With {.Nim = nim, .Nama = nama, .IPK = ipk})
10: End Sub
11:
12: Sub Main()
13: Dim list As New List(Of Mahasiswa) From {
14: {"23080008", "Erick Kurniawan", 3.4},
15: {"22080009", "Budi Anduk", 3.3}
16: }
17:
18: For Each mhs In list
19: Console.WriteLine("Nim :" & mhs.Nim & " Nama :" & mhs.Nama & " Ipk :" & mhs.IPK)
20: Next
21: End Sub
22:
23: End Module
Array Literals
ArrayLiteral memberi kemudahan kepada kita untuk memberi nilai ke object array secara langsung, compiler akan secara otomatis meng-infers tipe datanya.
1: Dim arr1 = {1, 2, 4, 5, 6} 'infers ke tipe integer
2: Dim arr2 = {1, 2.5, 3.5, 5} 'infers ke tipe double
3: Dim arr3 = {"erick", "budi"} 'infers ke tipe string
4: Dim arr4 = {1, "erick"} 'infers ke tipe object (dengan catatan Option Strict On)
5:
6: 'untuk array multidimensi
7: Dim matrix1 = {{1, 32, 12}, {23, 45, 67}} 'infers ke tipe int(,)