Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Vetva
Člen
Avatar
Vetva:13.11.2016 11:00

Spustite tento kód :

Dim num(2) As Byte
Dim arrList As New List(Of Array)

      For n As Integer = 1 To 3
          num(0) = 0 * n + n
          num(1) = 1 * n + n
          num(2) = 2 * n + n
          arrList.Add(num)
         'Array.ForEach(num, AddressOf Debug.Print)
       Next

V arrList by mal byť zoznam generovaných polí čísel:
1,2,3
2,4,6
3,6,9
Ale všetky sú prepísané na tie posledné ?!?!?!?!?!

 
Odpovědět
13.11.2016 11:00
Avatar
Odpovídá na Vetva
Michal Štěpánek:13.11.2016 14:01

řekl bych, že to je logické chování, když mu pokaždé ukládáš hodnoty na indexy 0,1 a 2

Nahoru Odpovědět
13.11.2016 14:01
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Vetva
Člen
Avatar
Odpovídá na Michal Štěpánek
Vetva:13.11.2016 15:39

Neviem či si si to odskúšal, ale chceš povedať, že pri každom novom prechode cyklom, treba iné indexy ?? Alebo ako dosiahnuť , aby som mal v kolekcii tri záznamy polí, bez toho, aby som polia pretypoval na string. ?

 
Nahoru Odpovědět
13.11.2016 15:39
Avatar
Odpovídá na Vetva
Antonín Tonini:13.11.2016 17:29

Problém je v tom, že do listu přidáváš referenci na to samé pole, tudíž na každém indexu v listu budeš mít odkaz na to samé místo v paměti a proto, když v každém průchodu cyklu změníš hodnoty v tom poli, tak se to projeví v celém listu. Pokud chceš, aby to bylo nezávislé, tak musíš v každém průchodu cyklem vytvořit nové pole, naplnit a to teprve pak přidat do listu. Zhruba nějak takto:

Dim arrList As New List(Of Array)
        Dim count As Integer = 2
        Dim depth As Integer = 3
        For n As Integer = 1 To depth
            Dim num(count) As Byte
            For i As Integer = 0 To count
                num(i) = i * n + n
            Next
            arrList.Add(num)
        Next
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
13.11.2016 17:29
Avatar
HONZ4
Člen
Avatar
HONZ4:13.11.2016 17:38

VB sice vůbec nerozumím, ale zkusím si tipnout chybu:
Dim num(2) As Byte
předpokládám,že takto založíš pole o dvou položkách a přistupuješ ke třem

 
Nahoru Odpovědět
13.11.2016 17:38
Avatar
Vetva
Člen
Avatar
Odpovídá na HONZ4
Vetva:13.11.2016 22:02

Ďakujem Antonín Tonini. Toto je to správne vysvetlenie o ktoré mi šlo.

 
Nahoru Odpovědět
13.11.2016 22:02
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.