二维数组到visual basic中的数组

时间:2018-05-02 02:20:19

标签: vb.net multidimensional-array

我对使用二维数组有疑问。

Public twolist(,) As String
For i As Integer = 0 To twolist.length()-1
 If Func(twolist(i, )) Then 'this part is hard for me
     'doing something
 End If

Public Function Func(ByVal CancelInput() As String) As Boolean

我想要做的是将二维数组传递给数组。 我想在二维数组中读取一行并传递给使用数组的函数(Func)。

希望你能理解我的问题......谢谢!

3 个答案:

答案 0 :(得分:0)

我刚刚为你的数组使用了任意大小。您需要嵌套的For循环来迭代2维数组。外部循环遍历行,内部循环将每个字段中的值添加到要传递给Function的另一个数组。每行作为单维数组单独传递。

Private Sub TwoDimensionalArray()
    Dim twolist(,) As String
    ReDim twolist(10, 5)
    'First you will need to add data to your array
    For x As Integer = 0 To 10
        Dim arrayRow(5) As String
        For y As Integer = 0 To 5
            arrayRow(y) = twolist(x, y)
        Next
        If Func(arrayRow) Then 'this part is hard for me
            'doing something
        End If
    Next
End Sub
Public Function Func(ByVal CancelInput() As String) As Boolean
    Return True
End Function

答案 1 :(得分:0)

作为For Next循环的替代方案,您可以使用Linq(如果您对它很有帮助)来执行相同的任务。

这会将源数组的每个元素转换为String,将它们分组在IEnumerable(Of String)中,并将结果转换为一维的字符串数组:

Dim twolist(N, N) As String

Dim CancelInput() As String = twolist.Cast(Of String).Select(Function(str) str).ToArray()

Dim result As Boolean = Func(CancelInput)

答案 2 :(得分:0)

玛丽的答案很好,但假设你知道每个维度的长度。

我稍微改了一下以使用Array.GetLength函数:

Private Sub TwoDimensionalArray()
    Dim twolist(,) As String
    ReDim twolist(10, 5)

    'First you will need to add data to your array
    For x As Integer = 0 To 10

        'Fetch the length of this dimension:
        Dim i As Integer = twolist.GetLength(x)

        Dim arrayRow(i) As String
        For y As Integer = 0 To i - 1
            arrayRow(y) = twolist(x, y)
        Next

        If Func(arrayRow) Then
            'do something
        End If
    Next
End Sub
Public Function Func(ByVal CancelInput() As String) As Boolean
    Return True
End Function

注意: 在VB.Net中,ReDim twoList(10,5)实际上为你提供了一个(11,6)的数组。 Array.GetLength(0)将返回6(0,1,2,3,4,5)。 简而言之,Dim指定每个维度中的最大索引,长度& GetLength返回元素数。