我已经设置了一个遍历列表的For Each语句。该列表由“像素”组成,这是一个自定义的图片框类。我需要设置一个循环,以相反的顺序遍历列表。这就是我的正常循环:
For Each Tile As Pixel In PixelList
If Tile.PixelNumber = 1 Then
Tile.NewColour()
End If
Next
PixelNumber只是一个整数变量,可以计算哪个像素是哪个。
Pixel是自定义Picturebox类
PixelList是列表的名称
我需要能够设置一个类似的循环,但是在添加I Tile时以相反的顺序遍历列表。所以先进先出。
答案 0 :(得分:2)
ʀᴎᴅᴏƞᴎᴅᴏƞway way的方式是最有效的,但一个简单的替代方法是使用List(Of T).Reverse()
function,但这会改变列表本身的顺序。
PixelList.Reverse()
For Each Tile As Pixel In PixelList
If Tile.PixelNumber = 1 Then
Tile.NewColour()
End If
Next
答案 1 :(得分:1)
通过索引访问列表,该索引从集合中的元素计数开始并递减1。
For i as Integer = PixelList.Count - 1 To 0 Step -1
If DirectCast(PixelList(i), Pixel).PixelNumber = 1 then DirectCast(PixelList(i), Pixel).NewColour()
Next