Salve, nell'esempio seguente ci sono due metodi per caricare una list che credevo fossero equivalenti, invece il primo metodo non funziona e mi pare che sia un bel bug.
Osservandolo con il debug sembra che il record appena inserito con List1.add resti connesso all'array di appoggio cols, quindi l'assegnamento successivo modifica il record corrente. L'univa differenza è il metodo con cui è riempito cols, ma fare
cols(0) = "A"
cols(1) = "B"
cols(2) = "C"
cols(3) = "D"
cols(4) = "E"
non è equivalente a
cols = Array As String ("A","B","C","D","E")
Grazie e distinti saluti.
B4X:
Sub EsempioLista
Dim list1 As List
list1.Initialize
Dim cols(05) As String
cols(0) = "A"
cols(1) = "B"
cols(2) = "C"
cols(3) = "D"
cols(4) = "E"
list1.Add(cols)
' da questo punto modificando il contenuto di cols mi cambia il contenuto della prima posizione di list1
cols(0) = "F"
cols(1) = "G"
cols(2) = "H"
cols(3) = "I"
cols(4) = "L"
list1.Add(cols)
' qui mi trovo list1(1) e list1(2) uguali
End Sub
Sub EsempioLista2
Dim list1 As List
list1.Initialize
Dim cols(05) As String
cols = Array As String ("A","B","C","D","E")
list1.Add(cols)
cols = Array As String ("F","G","H","I","l")
list1.Add(cols)
' questo funziona bene
End Sub
cols(0) = "A"
cols(1) = "B"
cols(2) = "C"
cols(3) = "D"
cols(4) = "E"
non è equivalente a
cols = Array As String ("A","B","C","D","E")
Grazie e distinti saluti.