[résolu][c#] ajout d un element à un tableau

ajout d un element à un tableau [résolu][c#] - C#/.NET managed - Programmation

Marsh Posté le 15-09-2006 à 17:03:13    

Salut,
 
question simple pour certains, comment ajouter en c# un élément à un tableau?
 
int[] mavariable={2,3,4};
//==> mavariable[3]=89;
 
merci a vous.
 
cyb


Message édité par mitoucette le 17-09-2006 à 17:32:21
Reply

Marsh Posté le 15-09-2006 à 17:03:13   

Reply

Marsh Posté le 15-09-2006 à 17:21:32    

tu ne peux pas. Utilise un ArrayList

Reply

Marsh Posté le 15-09-2006 à 17:34:03    

en langage c y avait des malloc...  
 
le pb avec l arraylist, c est que ca fait echouer ma serialisation. peu etre aussi il y a des options..
 
je cherche, tout commentaire est le bienvenu :)
 
Merci

Message cité 1 fois
Message édité par mitoucette le 15-09-2006 à 17:44:07
Reply

Marsh Posté le 15-09-2006 à 18:28:59    

mitoucette a écrit :

en langage c y avait des malloc...


En C# il y a new. C'est pareil, mais en bien mieux.
Sauf que tout réallouer pask'il te manque une case ça reste une solution très bourrin, que ce soit en C ou en C
Aller, c mon jour de bonté, je te donne la solution bourrin que tu veux :

Code :
  1. // mon tableau à la base
  2. int[] mavariable={2,3,4};
  3. // j'en fait un autre plus grand
  4. int[] mon_tableau_en_plus_grand = new int[mavariable.Length+1];
  5. // je transvase son contenu
  6. mavariable.CopyTo(mon_tableau_en_plus_grand, 0);
  7. // je décide de continuer à utiliser ma référence 'mavariable'. L'ancien tableau sera détruit tout seul
  8. mavariable = mon_tableau_en_plus_grand;
  9. // maintenant je peux le faire
  10. mavariable[3]=89;

Reply

Marsh Posté le 15-09-2006 à 18:50:13    

c clair que cette solution reste correcte quand le nombre d'éléments et faible, et que leur type est de petite taille...
par contre, pour un array de grande taille, avec un type plus volumineux, le programme va passer la plupart de son temps à faire des recopies en mémoire... pas top

Reply

Marsh Posté le 15-09-2006 à 22:18:36    

travaille ta sérialisation. ne fais pas le gignol à faire à la C dans un truc de plus haut niveau. utilise une Collection.

Reply

Marsh Posté le 17-09-2006 à 17:34:28    

merci pour vos réponses.
 
C'est plus clair comme ca ;)

Reply

Marsh Posté le 17-09-2006 à 21:06:34    

sur un arrayList il y a une méthode "toArray()" qui permet de caster un ArrayList vers un Object[] c'est pas plus simple?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed