Pertanyaan Cetak (multi) dimensi array dalam Visual Basic


Apakah ada cara mudah untuk mencetak array, yang berpotensi multi-dimensi, ke Konsol di VB.NET untuk tujuan debugging (yaitu hanya memeriksa bahwa isi dari array sudah benar).

Berasal dari latar belakang Objective-C NSLog fungsi mencetak output berformat cukup baik, seperti berikut untuk larik satu dimensi:

myArray {
    0 => "Hello"
    1 => "World"
    2 => "Good Day"
    3 => "To You!"
}

dan serupa untuk array multi-dimensi (berikut ini adalah contoh dari output array dua dimensi):

myTwoDArray {
    0 => {
        0 => "Element"
        1 => "Zero"
    }
    1 => {
        0 => "Element"
        1 => "One"
    }
    2 => {
        0 => "Element"
        1 => "Two"
    }
    3 => {
        0 => "Element"
        1 => "Three"
    }
}

4
2018-03-14 07:19


asal


Jawaban:


Saya tidak berpikir ada fungsi asli (built-in) untuk melakukan itu, Namun fungsi di bawah ini harus berfungsi dengan baik.

Public Shared Sub PrintValues(myArr As Array)
  Dim s As String = ""
  Dim myEnumerator As System.Collections.IEnumerator = myArr.GetEnumerator()
  Dim i As Integer = 0
  Dim cols As Integer = myArr.GetLength(myArr.Rank - 1)
  While myEnumerator.MoveNext()
    If i < cols Then
      i += 1
    Else
      'Console.WriteLine()
      s = s & vbCrLf
      i = 1
    End If
    'Console.Write(ControlChars.Tab + "{0}", myEnumerator.Current)
    s = s & myEnumerator.Current & " "
  End While
  'Console.WriteLine()
  MsgBox(s)
End Sub

Demi menguji fungsi dalam aplikasi non-konsol, saya telah menambahkan variabel string S, yang seharusnya dapat Anda hilangkan ketika Anda menggunakan fungsi tersebut dalam aplikasi konsol.


2
2018-03-22 16:04