61

I am looking for the VB.NET equivalent of

var strings = new string[] {"abc", "def", "ghi"};

6 Answers 6

85
Dim strings() As String = {"abc", "def", "ghi"}
Sign up to request clarification or add additional context in comments.

3 Comments

Not too sure I like the array indicator on the variable name, it goes against common convention. Especially in other languages.
@ganjeii Not all languages: C for example, but also and more importantly in this case VBA, only accept this syntax for array declaration
Note that as inferred in the next answer these two are equivalent: Dim strings() As String Dim strings As String()
47

There are plenty of correct answers to this already now, but here's a "teach a guy to fish" version.

First create a tiny console app in C#:

class Test
{
    static void Main()
    {
        var strings = new string[] {"abc", "def", "ghi"};
    }
}

Compile it, keeping debug information:

csc /debug+ Test.cs

Run Reflector on it, and open up the Main method - then decompile to VB. You end up with:

Private Shared Sub Main()
    Dim strings As String() = New String() { "abc", "def", "ghi" }
End Sub

So we got to the same answer, but without actually knowing VB. That won't always work, and there are plenty of other conversion tools out there, but it's a good start. Definitely worth trying as a first port of call.

2 Comments

I agree that Reflector should be in every .NET developers tool belt. But for this it would be simpler to use the online converter at converter.telerik.com
This is good for specifying that {Nothing} is an array of String or basically any other type, as opposed an array of Object, which a compiler will assume in certain particular scenarios if you don't include New String() before the contents.
11

In newer versions of VB.NET that support type inferring, this shorter version also works:

Dim strings = {"abc", "def", "ghi"}

Comments

6
Dim strings As String() = New String() {"abc", "def", "ghi"}

1 Comment

Ah, but this did help me pass in an inline declaration to a function: MyFunction(somestring, New String() {"abc", "def", "ghi"})
5

Not a VB guy. But maybe something like this?

Dim strings = New String() {"abc", "def", "ghi"}

(About 25 seconds late...)

Tip: http://www.developerfusion.com/tools/convert/csharp-to-vb/

Comments

4

Dim strings As String() = {"abc", "def", "ghi"}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.