【问题标题】:Print (multi)dimensional array in Visual Basic在 Visual Basic 中打印(多)维数组
【发布时间】:2013-03-02 10:52:29
【问题描述】:

是否有一种简单的方法可以将一个可能是多维的数组打印到 VB.NET 中的控制台以进行调试(即仅检查数组的内容是否正确)。

来自 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"
    }
}

【问题讨论】:

  • 好问题!这将是一个不错的选择!
  • Microsoft 认为此功能不够重要,无法包含在 .NET 框架中。不知道他们在抽什么。

标签: arrays vb.net


【解决方案1】:

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

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,当您在控制台应用程序中使用该函数时应该可以省略它。

【讨论】:

    猜你喜欢
    • 2015-01-10
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 2016-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多