Do you see any reason why it is such a struggle to return the array inside this loop? Let's say x=30

Code:
        For x As Integer = 0 To adoc.GetUpperBound(0)
            dr = ds.Tables(0).NewRow()
            ' dr.Item(0) = GetRoot(adoc(x))

            Dim abom() As String = GetVantageData(x)
            dr.Item(1) = abom(0)
            dr.Item(2) = abom(1)
            dr.Item(3) = abom(2)
            dr.Item(4) = abom(3)
            dr.Item(5) = abom(4)
            dr.Item(6) = abom(5)

            dt.Rows.Add(dr)

        Next