Onko VB:ssa valmista funktiota tai yleisesti hyväksi koettua keinoa käydä taulukko järjestyksessä läpi muutoin kuin alusta loppuun tai takaperin lopusta alkuun? esim. tässä tapauksessa etuperin viimeisestä alkiosta toiseksiviimeiseen alkioon.
NO MORJENS novice!
If Taulukko.Length > 1 Then
   'viimeisestä alkiosta toiseksiviimeiseen
   For i As Integer = Taulukko.GetUpperbound(0) _
   To Taulukko.GetUpperbound(0) - 1 Step -1
      MsgBox(Taulukko(i).ToString)
   Next
   'toiseksiviimeisestä alkiosta viimeiseen
   For i As Integer = Taulukko.GetUpperbound(0) - 1
   To Taulukko.GetUpperbound(0)
      MsgBox(Taulukko(i).ToString)
   Next
   'Edit: jos Antin epäilys osui oikeaan niin...
   'elikä ensimmäisenä viimeinen ja sitten alusta
   'toiseksiviimeiseen alkioon...
   For i As Integer _
   = Taulukko.GetLowerBound(0) _
   To Taulukko.GetUpperBound(0)
      Dim j As Integer = Math.Abs(Math.Abs( _
      (i - (Taulukko.GetUpperBound(0) * 2)) Mod  _
      Taulukko.GetUpperBound(0)) _
      - Taulukko.GetUpperBound(0))
      If i > 0 Then j -= 1
      MsgBox(Taulukko(j).ToString)
   Next
End IfVai oliko tarkoitus pyörähtää ympäri taulukon lopusta?
Dim taulu() As Integer = {1, 2, 3, 4, 5}
' aloituskohta
Dim alku As Integer = UBound(taulu)
' lopetuskohta
Dim loppu As Integer = UBound(taulu) - 1
' 1 = eteenpäin, -1 = taaksepäin
Dim askel As Integer = 1
Dim kohta As Integer = alku
Do
    MsgBox(taulu(kohta))
    If kohta = loppu Then Exit Do
    kohta = kohta + askel
    If kohta = -1 Then kohta = UBound(taulu)
    If kohta = UBound(taulu) + 1 Then kohta = 0
LoopAntti Laaksonen kirjoitti:
Vai oliko tarkoitus pyörähtää ympäri taulukon lopusta?
Kyllä. Samankaltaisen ratkaisun kehittelin itsekin, mutta ajattelin vaan, että olisiko siihen yksikertaisempaa alla olevan kaltaista ratkaisua...
For Each Item In Taulu StartItem = 3 Next
NO MORJENS taas novice!
tässä pikku funkkari...
Function ListFromItem(_Array As Object, sItem As Integer) As Collection
   Dim _Collection As New Collection
   If sItem > 0 Then
      For i As Integer = sItem To _Array.GetUpperBound(0)
         _Collection.Add(_Array(i))
      Next
      For i As Integer = _Array.GetLowerBound(0) To sItem -1
         _Collection.Add(_Array(i))
      Next
   Else
      For i As Integer = _Array.GetLowerBound(0) _
      To _Array.GetUpperBound(0)
         _Collection.Add(_Array(i))
      Next
   End If
   Return _Collection: _Collection = Nothing
End Function
Sub Button1Click(sender As Object, e As EventArgs)
   'Testi
   Dim Taulukko(5) As Object
   For i As Integer = Taulukko.GetLowerBound(0) _
   To Taulukko.GetUpperBound(0)
      Taulukko(i) = i
   Next
   For Each Item In ListFromItem(Taulukko, 2)
      MsgBox(item.ToString)
   Next
End SubAihe on jo aika vanha, joten et voi enää vastata siihen.