Ok I admit VB.Net is a weird language and one wonders where the designers got their inspiration from.
Let’s see how we can initialize an array while letting the compiler infer the type.
In C# that would be.
csharp
var stringarray = new[] { "test", "test" };
In VB.Net this is.
vbnet
Dim stringarray = {"test", "test"}
Which might be slightly better and shorter than the C# version.
Now lets see the syntax for when we want to specify the type.
In C#.
csharp
var stringarray = new string[] {"test", "test"};
And in VB.Net that will be.
vbnet
Dim stringarray = New String() {"test", "test"}
Both are ok.
Now lets look at the collection initializers like list.
In C#.
csharp
var stringlist = new List<string> {"test", "test"};
In VB.Net.
vbnet
Dim stringlist = New List(Of String) From {"test", "test"}
The thing that strikes me as odd here is that someone decided they needed the From keyword here to make it work.
So to recap.
C#
csharp
var stringarray = new[] { "test", "test" };
var stringarray = new string[] {"test", "test"};
var stringlist = new List<string> {"test", "test"};
VB.Net
vbnet
Dim stringarray = {"test", "test"}
Dim stringarray = New String() {"test", "test"}
Dim stringlist = New List(Of String) From {"test", "test"}
I think the C# version is much more consistent than the VB version so it would be nice if someone fixed that in the next version, thank you in advance ;-).