2013-03-14 117 views
4

有一种简单的方法来打印一个数组,这是潜在的多维度,到控制台在VB.NET用于调试的目的(即只检查的是内容数组是正确的)。打印(多)维数组的Visual Basic

从一个Objective-C背景中的NSLog函数打印一个相当好格式化输出,诸如用于一个一维阵列以下编辑:

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

和用于多维数组相似(以下是一个二维数组输出的例子):

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

很好的问题!这将是一个很好的选择! – 2013-03-14 08:00:10

+0

微软决定此功能是不够重要,包括在.NET框架。不知道他们在吸烟。 – 2013-03-22 16:06:11

回答

2

我不认为有任何本机(内置)函数来做到这一点, 以下但功能应该正常工作。

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 

在非控制台应用程序进行测试功能的缘故,我已经添加了字符串变量S,你应该能够当你在一个控制台应用程序中使用的功能省略。