Indexer un tableau avec des chaines de cars

Indexer un tableau avec des chaines de cars - C#/.NET managed - Programmation

Marsh Posté le 20-04-2005 à 16:46:43    

Bonjour
 
 
Je débute en C# et je m'heurte à un premier problème.
J'ai beau chercher sur le net et dans la doc, je n'arrive à savoir s'il est possible d'indexer un tableau avec une chaine de cars, comme ceci :
 
mon_tab["chaine1"]
mon_tab["chaineX"]
...
 
J'ai passé en revue la déclaration standards de tableaux, la classe ArrayList, la classe Hashtable mais sauf erreur de ma part, ça ne semble pas possible.
 
Est-ce quelqu'un peut me confirmer ça avant que j'y passe des heures et si c'est pas possible, est-ce que vous vous en passez ou vous feintez ?
 
Je suis en train de penser à un tableau standard d'objet avec des ArrayList dedans peut-être...

Reply

Marsh Posté le 20-04-2005 à 16:46:43   

Reply

Marsh Posté le 20-04-2005 à 16:51:20    

Avec une Collection :

Dim MaCollection As New Collection()
MaCollection.Add("pouet", ObjetAInserer)

Reply

Marsh Posté le 20-04-2005 à 17:07:15    

hum, en C# ca donne quoi ?
 
Car ya pas de méthode Add dans la classe System.Collections.CollectionBase ;x

Reply

Marsh Posté le 20-04-2005 à 18:42:47    

C'est pas CollectionBase, mais Collection. En C# c'est à peu près pareil

Reply

Marsh Posté le 20-04-2005 à 19:27:06    

beurk
 
System.Collections.Hashtable est ton amie.

Reply

Marsh Posté le 21-04-2005 à 10:37:45    

Gnarf :D

Reply

Marsh Posté le 22-04-2005 à 09:49:45    

Bon, je viens encore réclamer de l'aide, car je m'en sort pas...  :cry:  
 
J'essaie de refaire une classe perso que j'utilise en PHP pour accéder à ma BD. Voilà en gros ce qu'elle doit me retourner avec une query sur une BD :
 
valeur = enregistrement[ligne][colonne]
 
donc en gros :
 
ligne1_champ1 = enregistrement[0]["champ1"]
ligne1_champ2 = enregistrement[0]["champ2"]
ligne2_champ1 = enregistrement[1]["champ1"]
ligne2_champ2 = enregistrement[1]["champ2"]
 
Et lors d'un parcours BD, j'ai l'habitude d'écrire ceci :
 


pour i allant de 0 à fin de tableau
  afficher enregistrement[i]["champ1"]
fin pour


 
Ca parait pourtant pas dur ! Et bien, pas moyen.
Suis heurté à plusieurs problèmes :
- Comment gérer un int dans la 1ere dimension du tableau et un string dans la seconde
- Les hashtable n'acceptent que des index uniques, donc là avec mes 0, 0, 0, 1, 1, 1, etc, c mort.
- ...
 
 
Voilà, merci de vos précieux conseils pour me mettre sur la voix car c'est la lutte ... :|

Reply

Marsh Posté le 22-04-2005 à 10:14:07    

Voici le bout de code de ma classe pour que vous puissiez (j'espère!) m'aider au mieux :
 


//parcours des lignes
while(this.monLecteur.Read()) {
  //parcours des colonnes
  for(int c=0; c<this.monLecteur.FieldCount; c++){
     
    this.monLecteur[c];  //valeur
    this.monLecteur.GetName(i);  //nom de la colonne
     
  }
 
  compteur++;
}


 
Voilà, ZI question now :
Comment écrire un tableau ou autre chose que je puisse renvoyer pour pouvoir au final ceci :
 
valeur = mes_enregistrement[ligne][colonne]

Reply

Sujets relatifs:

Leave a Replay

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