Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Visual Basic-将信息从数组存储到二维数组_Arrays_Visual Studio 2008_Loops_Multidimensional Array - Fatal编程技术网

Arrays Visual Basic-将信息从数组存储到二维数组

Arrays Visual Basic-将信息从数组存储到二维数组,arrays,visual-studio-2008,loops,multidimensional-array,Arrays,Visual Studio 2008,Loops,Multidimensional Array,我有一些代码,其中一个“映射”存储在一个字符串中,然后我将其放入一个数组中。此数组已将字符串分隔为每个索引位置的字符。我现在想将这些字符放入二维数组,如下所示是我的尝试: Sub DisplayMap() Dim MapTog As String MapTog = ("--------------------------------------------------------------------------------") _ & ("-

我有一些代码,其中一个“映射”存储在一个字符串中,然后我将其放入一个数组中。此数组已将字符串分隔为每个索引位置的字符。我现在想将这些字符放入二维数组,如下所示是我的尝试:

Sub DisplayMap()
    Dim MapTog As String
    MapTog = ("--------------------------------------------------------------------------------") _
           & ("-                                                                              -") _
           & ("-                                                                              -") _
           & ("-                                                                              -") _
           & ("-                                                                              -") _
           & ("-                                                                              -") _
           & ("-                                                                              -") _
           & ("-                          ---------------------                               -") _
           & ("-                                                                              -") _
           & ("-                                                                              -") _
           & ("-                                                                              -") _
           & ("-                                                                              -") _
           & ("-                                                                              -") _
           & ("-------------------                                        ---------------------") _
           & ("-                                                                              -") _
           & ("-                                                                              -") _
           & ("-                                                                              -") _
           & ("-                                                                              -") _
           & ("-                                                                              -") _
           & ("-                          ---------------------                               -") _
           & ("-                                                                              -") _
           & ("-                                                                              -") _
           & ("-                                                                              -") _
           & ("-                                                                              -") _
           & ("--------------------------------------------------------------------------------")
    Dim MapSep() As Char = MapTog.ToCharArray
    For Count = 0 To 24
        For Count2 = 0 To 79
            Map(Count)(Count2) = MapSep(Count2)
            Console.Write(MapSep(Count2))
        Next Count2
    Next Count
    Console.SetCursorPosition(0, 0)

End Sub
我想我的For循环有一个问题,但我无法解决。非常感谢您的帮助,谢谢!:)

这里有一种方法:

Module Module1

    Public Map As New List(Of List(Of Char))

    Public Sub Main()
        CreateMap()
        DisplayMap()

        Console.ReadLine()
    End Sub

    Public Sub DisplayMap()
        Console.Clear()
        ' this demonstrates how you can access each char separately:
        For y As Integer = 0 To Map.Count - 1
            For x As Integer = 0 To Map(y).Count - 1
                Console.SetCursorPosition(x, y)
                Console.Write(Map(y)(x))
            Next
        Next

        ' ... or you could do ...

        Console.Clear()
        ' this demonstrates how you can convert each row to a string
        For y As Integer = 0 To Map.Count - 1
            Console.SetCursorPosition(0, y)
            Console.Write(New String(Map(y).ToArray))
        Next
    End Sub

    Public Sub CreateMap()
        Dim MapTog As String = _
             "--------------------------------------------------------------------------------" & vbCrLf _
           & "-                                                                              -" & vbCrLf _
           & "-                                                                              -" & vbCrLf _
           & "-                                                                              -" & vbCrLf _
           & "-                                                                              -" & vbCrLf _
           & "-                                                                              -" & vbCrLf _
           & "-                                                                              -" & vbCrLf _
           & "-                          ---------------------                               -" & vbCrLf _
           & "-                                                                              -" & vbCrLf _
           & "-                                                                              -" & vbCrLf _
           & "-                                                                              -" & vbCrLf _
           & "-                                                                              -" & vbCrLf _
           & "-                                                                              -" & vbCrLf _
           & "-------------------                                        ---------------------" & vbCrLf _
           & "-                                                                              -" & vbCrLf _
           & "-                                                                              -" & vbCrLf _
           & "-                                                                              -" & vbCrLf _
           & "-                                                                              -" & vbCrLf _
           & "-                                                                              -" & vbCrLf _
           & "-                          ---------------------                               -" & vbCrLf _
           & "-                                                                              -" & vbCrLf _
           & "-                                                                              -" & vbCrLf _
           & "-                                                                              -" & vbCrLf _
           & "-                                                                              -" & vbCrLf _
           & "--------------------------------------------------------------------------------"

        Map.Clear()
        For Each line As String In MapTog.Split(vbCrLf.ToCharArray, StringSplitOptions.RemoveEmptyEntries)
            Map.Add(New List(Of Char)(line.ToCharArray))
        Next
    End Sub

End Module

谢谢你的帮助,我对编码很陌生,所以这很好。然而,我似乎有一个问题,“该值必须大于或等于零,并且小于该维度中控制台的缓冲区大小。参数名称:left实际值为80。”在console.SetCursorPos(x,y)的displaymap()子部分中,表示您的映射宽度大于控制台屏幕。要么减小地图宽度(从每行中删除一些字符),要么增大控制台屏幕的大小(单击控制台窗口的左上角图标并选择属性,然后将缓冲区和宽度更改为80)。我使用了console.BufferWidth=80,如果然后说缓冲区太小,需要81,但是,宽度应仅为80个字符长。无论我输入什么缓冲区,它都是额外的1。这可能与MapTog长度约为1500个字符有关。SetCursor()函数基于0(零)。请注意,我使用:
循环x作为整数=0映射(y)。Count-1
因此最左边的列为0(零),最右边的列为79。