Hejsan. Om jag skriver på detta vis så står det bara 6,7,8,9,10 i c: hmm. glömde skriva problemet. Anledningen till att det blir 6,7,8,9,10 hela tiden är för att du sätter in listan i andra listan och sedan tömmer du listan och sätter in nya värden i den. Du sätter in en referens till din lista i den andra listan, inte en kopia av objektet. tjena precis.Problem med collection och Arraylist
Nedan följer ett exempel för att illustrera problemet.
dim i as new arraylist
dim c as new collection
for q=0 to 10
i.add(q)
if q=5 then
c.add(i)
i.clear()
end if
next q
dim m as string
for each b as arraylist in c
for each j as integer in b
m += j
next b
next
om man nu ska läsa ur vad som står i collection så kommer den skriva
6,7,8,9,10,6,7,8,9,10
Varför?Sv: Problem med collection och Arraylist
Dim q As Integer
Dim i As New ArrayList
Dim c As New Collection
For q = 0 To 10
i.Add(q)
If q = 5 Then
c.Add(i)
i.Clear()
End If
Next q
Dim m As String
For Each b As ArrayList In c
For Each j As Integer In b
m += j
Next
Next
Sv:Problem med collection och Arraylist
Vad jag skulle vilja med koden är att spara båda arraylistorna
i collection. Collection.item(0) = arraylist1 = 1,2,3,4,5 (se ovan)
och collection.item(1) = arraylist2 = 6,7,8,9,10
Problemet är att om man hade fler arraylist kommer collection bli lika
stor som antalet arraylists men alla arraylist i collection kommer att innehålla
samma värden (värdena från sista arraylisten).
Koden jag skrev ovan ger följande resultat
collection.item(0)=arraylist1=6,7,8,9,10
collection.item(1)=arraylist1=6,7,8,9,10
och jag vill ha följande
collection.item(0)=arraylist1=1,2,3,4,5
collection.item(1)=arraylist1=6,7,8,9,10
Sv: Problem med collection och Arraylist
Kolla om det finns en Clone funktion i listan (kommer nu inte ihåg) och använd det i så fall om det finns, alltså om det finns så använd c.Add(i.Clone()) istället för c.Add(i), eftersom det senare enbart sätter in en referense till i.Sv:Problem med collection och Arraylist
Helt rätt
Det var clone jag var ute efter.
Har letat efter allt möjligt, copy etc. Gjorde till och med en lösing där jag kopiera
dom till nya variabler.. De funka ju men blir inte snyggt.
tack