Двумерный массив в string и обратно - Visual Basic .NET

Формулировка задачи:

Доброго времени суток! Имеется код который переводит двумерный массив в строку и обратно, есть ли возможность преобразование массива без использования циклов?
Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim q(1, 2) As String
        q(0, 0) = "0.0"
        q(0, 1) = "0.1"
        q(0, 2) = "0.2"
        q(1, 0) = "1.0"
        q(1, 1) = "1.1"
        q(1, 2) = "1.2"
        Dim w As String = ""
        For i As Integer = 0 To q.GetLength(0) - 1
            For ii As Integer = 0 To q.GetLength(1) - 1
                w = w & q(i, ii) & "?"
                If ii = q.GetLength(1) - 1 Then
                    w = w & "@"
                End If
            Next
        Next
        MsgBox(w)
        'обратный перевод данных в массив ИЗ STRING
        For i As Integer = 0 To q.GetLength(0) - 1
            For ii As Integer = 0 To q.GetLength(1) - 1
                q(i, ii) = w.Split("?")(ii)
                MsgBox(q(i, ii))
                If w.Split("@").Length - 1 = 2 Then
                    If ii = q.GetLength(1) - 1 Then
                        w = w.Split("@")(1)
                    End If
                End If
            Next
        Next
    End Sub
End Class

Код к задаче: «Двумерный массив в string и обратно - Visual Basic .NET»

textual
'to string
Dim nj As Integer = q.GetLength(1)
Dim ss = (From t In q Select t).Select(Function(t, i) If((i + 1) Mod nj = 0, t & "@", t & "?")).ToArray
Dim str As String = String.Join("", ss)
 
'back in
Dim qq(1, 2) As String
Dim rr() As String = str.Split("@")
For i = 0 To qq.GetLength(0) - 1
    Dim ww() As String = rr(i).Split("?")
    For j = 0 To qq.GetLength(1) - 1
        qq(i, j) = ww(j)
    Next
Next

12   голосов, оценка 3.917 из 5


СОХРАНИТЬ ССЫЛКУ