变量未知大小的数组

时间:2015-01-07 11:21:41

标签: .net arrays vb.net

我有一个数组作为我的函数的传入参数,我想将数组元素分配给变量,如:

Dim Par1 As String = Array(0).ToString
Dim Par2 As String = Array(1).ToString
...

但是存在一个问题,因为这个可变大小的数组(0-10)所以不可能以硬编码的方式分配变量。是否有一种优雅的方法可以根据数组大小动态地将元素分配给变量?

更新:到目前为止,我有这个愚蠢的代码:

If Params.Length > 0 Then Dim Par1 As String = Array(0).ToString
If Params.Length > 1 Then Dim Par2 As String = Array(1).ToString
...
If Params.Length > 10 Then Dim Par11 As String = Array(10).ToString

让我知道是否有更好的方法...... oops ...似乎我必须先明确声明变量......

1 个答案:

答案 0 :(得分:0)

如果你的目标是可读性,我想你会想要循环你的项目。你必须在设计时声明一个未知数量的变量,这意味着如果检查然后放入变量你会有很多变量(然后你可能需要声明很多你在某些情况下不会使用的变量) 。此外,你通过复制它们使你拥有的字符串数量增加了一倍(我假设它们是字符串)。这是一些循环的例子。

我创建了一个可变大小的字符串数组(就像你说你会被传入)。然后,我遍历每个项目并为其分配一个我编写的值。在我为每个循环显示一个将遍历每个项目之后。

    ' Random number generator
    Dim rnd As New Random

    ' Declare a string array of variable size
    Dim variableArray(rnd.Next(10)) As String

    ' Loop by index, we'll just assign some text as an example
    For x As Integer = 0 To variableArray.Count - 1
        variableArray(x) = String.Format("Item {0}", x)
    Next

    ' Alternate way to loop over your array with a for each
    For Each item As String In variableArray
        Console.WriteLine(item)
    Next

    Console.WriteLine("Press any key to exit...")
    Console.ReadKey()

也就是说,如果您知道哪些变量进入并且它们具有意义,您可以将它们分配给您创建的类(或有意义的变量名称)中的对象中的属性。