Probleme d'ajout dans une liste vb
Résolu
ayumie
Messages postés
22
Statut
Membre
-
ayumie Messages postés 22 Statut Membre -
ayumie Messages postés 22 Statut Membre -
salut , voila j'ai une arraylist qui a chaque fois je lui ajoute un tableau de caractère mais le dernier élément écrase tous les autre
voila un exemple du code :
Public mat(4) As Char
Public suc As ArrayList
suc = New ArrayList
mat = {"X", "_", "O", "_"}
For i = 0 To 2
suc.Add(mat)
mat(i + 1) = "T"
MessageBox.Show(suc.Item(i))
Next
MessageBox.Show(suc.Item(0))
MessageBox.Show(suc.Item(1))
MessageBox.Show(suc.Item(2))
aidez moi svp merci
voila un exemple du code :
Public mat(4) As Char
Public suc As ArrayList
suc = New ArrayList
mat = {"X", "_", "O", "_"}
For i = 0 To 2
suc.Add(mat)
mat(i + 1) = "T"
MessageBox.Show(suc.Item(i))
Next
MessageBox.Show(suc.Item(0))
MessageBox.Show(suc.Item(1))
MessageBox.Show(suc.Item(2))
aidez moi svp merci
A voir également:
- Probleme d'ajout dans une liste vb
- Liste déroulante excel - Guide
- Liste code ascii - Guide
- Liste déroulante en cascade - Guide
- Vb - Télécharger - Langages
- Site dangereux liste - Guide
2 réponses
Il aurait été bien de préciser que tu fais un VB.NET, cela évite de penser que c'est du VB6/A.
Ensuite, à la place de ArrayList, essayes plutôt une List(Of Char()), ce sera plus sûr.
Pour ton for :
For i= 0 To 2
Actives "Option Explicit" et "Option Strict" dans les propriétés de ton projet.
A la place de mettre des bornes en dur, un :
For i=0 to mat.GetUpperBound(0)
serait mieux.
tu peux aussi utiliser For Each :
For Each lLine in mat
lLine contiendra la valeur de ta case de ton tableau.
Dans ton for, tu fais :
Tu ajoutes ton tableau à ton ArrayList, puis tu écrase l'item suivant (et non l'item actuel).
Pour information, les tableaux sont ajoutés en référence, donc modifier le tableau modifie aussi les références ajoutées.
Essayes d'utiliser :
suc.Add(mat.ToArray())
If a Dalek is a being of pure hate...what happens when Cadence uses her love spell on one?
En VB.NET pensez à activer "Option Explicit" et "Option Strict"
Ensuite, à la place de ArrayList, essayes plutôt une List(Of Char()), ce sera plus sûr.
Pour ton for :
For i= 0 To 2
Actives "Option Explicit" et "Option Strict" dans les propriétés de ton projet.
A la place de mettre des bornes en dur, un :
For i=0 to mat.GetUpperBound(0)
serait mieux.
tu peux aussi utiliser For Each :
For Each lLine in mat
lLine contiendra la valeur de ta case de ton tableau.
Dans ton for, tu fais :
For i = 0 To 2 suc.Add(mat) mat(i + 1) = "T" MessageBox.Show(suc.Item(i)) Next
Tu ajoutes ton tableau à ton ArrayList, puis tu écrase l'item suivant (et non l'item actuel).
Pour information, les tableaux sont ajoutés en référence, donc modifier le tableau modifie aussi les références ajoutées.
Essayes d'utiliser :
suc.Add(mat.ToArray())
If a Dalek is a being of pure hate...what happens when Cadence uses her love spell on one?
En VB.NET pensez à activer "Option Explicit" et "Option Strict"
merci pour la réponse voila j'ai essayer avec
est ce que tu peut m'aidez
suc = New List(Of Char()) mat = {"X", "_", "O", "_"} For Each lLine In mat suc.Add(lLine) 'jai une erreur ici Dim j As Integer = 0 mat(j + 1) = "T" j += 1 MessageBox.Show(suc.Item(j)) Next
est ce que tu peut m'aidez