创建数组的简短方法?

时间:2011-01-27 05:13:02

标签: vb.net arrays

在VB.NET中,我创建了像

这样的数组
Dim myArray = New ArrayList

但是有没有办法用元素创建数组而不必创建变量?

在Ruby中,漫长的道路是

array = Array.new

简单,不可变的方式只是

[element,element,...]

4 个答案:

答案 0 :(得分:2)

嗯,你可以对原始(和字符串)数组做的事情:

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

如果您转到VB.NET 2010,您将获得一些额外的阵列初始化功能,但如果您使用2008或更短的时间,您可以获得您创建的列表:

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

触及声明事物而不将它们分配给变量:.NET是强类型的,因此虽然您不必总是声明变量,但您的对象始终需要是单一类型(你需要通过New指定一个。

答案 1 :(得分:0)

我不确定这样的野兽是多么有用,因为没有名字,你就无法轻易访问它的元素。

我知道C有一个功能允许使用“一次性”访问,如:

char hexchar = "0123456789abcdef"[nybble];

但是,在该语句完成后,构成该字符串的char数组不再可访问。

如果你想要一个可以连续访问的阵列,我怀疑它需要一个识别名称。我可能错了,我从VB6开始就没有使用VB,但即使它可能,它也是一个可疑的语言功能(IMO)。

答案 2 :(得分:0)

你可以做一些事情。

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

这是你要追求的那种东西吗?

答案 3 :(得分:0)

    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