Dim myPointsArray As New List(Of Point)
创建了一个我可以用For Next
循环填充的数组,但是我想要填充几个单独的数组,所以如果Dim myPointsArrays(20) as
....会很好工作,这样我就不必为每个单独的数组调暗点数组。然后我可以用嵌套的For Next
循环填充它们。
这是我填写一个数组
For i = 1 To 6
myPointsArray.Add(New Point(Ox + HxPnt(4, i) / skale, Oy - HyPnt(4, i) / skale))
Next
这里Ox,Oy代表原点,HxHyPnts是一系列点的成员,skale用于将全局值缩放为使用像素绘制。 问题是我需要从几十个数组中绘制许多不同的折线和多边形。
答案 0 :(得分:2)
您可以创建嵌套列表(List(Of T)
不是Array
):
Dim myPointsArray As New List(Of List(Of Point))
For i = 1 To 6
Dim innerList = new List(Of Point)
myPointsArray.Add(innerList)
For j = 1 to 10
innerList.Add(New Point(Ox + HxPnt(4, i) / skale, Oy - HyPnt(4, i) / skale))
Next
Next
要再次迭代这些值,请使用以下命令:
For Each list As List(Of Point) in myPointsArray
For Each p As Point in list
// Access p here
Next
Next
答案 1 :(得分:0)
知道了! 我创建了一个新的点数组变量(newPoints),从列表中填充它然后用.ToArray thingy转换它。然后通过填充,清除和重新填充数组,在循环中绘制每条折线。这是最好的方法吗?对我来说似乎很好。
For Each list As List(Of Point) In myPointsArray
For Each p As Point In list
newPoints.Add(New Point((Ox + p.X) / skale, (Oy + p.Y) / skale))
Next
e.Graphics.DrawLines(myPen, newPoints.ToArray)
newPoints.Clear()
Next