Saturn
Saturn

Reputation: 18149

Short way to create arrays?

In VB.NET, I create my arrays like

Dim myArray = New ArrayList

But isn't there a way to create an array with elements without having to make a variable?

In Ruby, the long way was

array = Array.new

And the simple, non-variable way was just

[element,element,...]

Upvotes: 0

Views: 1334

Answers (4)

Cᴏʀʏ
Cᴏʀʏ

Reputation: 107526

Well, things you can do with primitive (and String) arrays:

Dim array As New String()
Dim array As New String() { "one", "two", "three" }

If (New String() { "one", "two", "three" }).Contains("one") Then
    ' Do something for "one"
End If

If you move to VB.NET 2010 you will get some extra array initialization features, but if you're using 2008 or below the shortest you can get your lists created might be something like this:

Dim list As New List(Of String)
list.AddRange(New String() { "one", "two", "three" })

And to touch on the point of declaring things without assigning them to a variable: .NET is strongly typed, so while you don't always have to declare a variable, your objects will always need to be of a single type (and one you need to specify through a New).

Upvotes: 2

dbasnett
dbasnett

Reputation: 11773

    For Each foo As String In New String() {"one", "two", "three"} 'an array with no name - "On the first part of the journey..."
        Debug.WriteLine(foo)
    Next

Upvotes: 0

Enigmativity
Enigmativity

Reputation: 117064

You can do a few things.

Public Sub Main()

    Dim xs = New Integer() {1, 2, 3}

    CType({1, 2, 3}, Integer()).CopyTo(...)

    Dim s2 = Sum({1, 2, 3})

End Sub

Public Function Sum(ByVal array As Integer()) As Integer
    Return array.Sum()
End Function

Is this the kind of thing you're after?

Upvotes: 0

paxdiablo
paxdiablo

Reputation: 881443

I'm not sure just how useful such a beast is since, without a name, you can't easily access the elements of it.

I know C has a feature that allows this with "one-shot" accesses like:

char hexchar = "0123456789abcdef"[nybble];

but, after that statement's finished the char array making up that string is no longer accessible.

If you want an array you can access continuously, I suspect it will need an identifying name. I might be wrong, I haven't used VB since VB6 but even if it's possible, it's a dubious language feature (IMO).

Upvotes: 0

Related Questions