在VB.NET中,我创建了像
这样的数组Dim myArray = New ArrayList
但是有没有办法用元素创建数组而不必创建变量?
在Ruby中,漫长的道路是
array = Array.new
简单,不可变的方式只是
[element,element,...]
答案 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