Hastable et tableaux en paramètre

Résolu
s010179 Messages postés 14 Date d'inscription samedi 1 mars 2003 Statut Membre Dernière intervention 8 novembre 2006 - 16 oct. 2006 à 11:31
s010179 Messages postés 14 Date d'inscription samedi 1 mars 2003 Statut Membre Dernière intervention 8 novembre 2006 - 16 oct. 2006 à 12:06
Bonjour,

lorsque je passe un tableau en paramètre d'un hastable je n'arrive pas à en récupérer les données.
voici un moceau de code illustrant mes propos...

string[] donnees = new string[2];
donnees[0] = "Coefficient de soudure : ";
donnees[1] = "3,3";
Hashtable ht = new Hashtable();
ht.Add("z", donnees);
IEnumerator clef = ht.Keys.GetEnumerator();
clef.MoveNext();
MessageBox.Show("Clé : " + clef.Current + " valeur : " + ht[clef.Current][1]);

...et l'erreur obtenue
Impossible d'appliquer l'indexation à l'aide de [] à une expression de type 'object'   

s010179

3 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
16 oct. 2006 à 11:44
Salut,
Oui c'est normal, la hashtable retourne un object, tu ne peux donc pas l'indexer.
Il faut d'abord le caster en string[] :

MessageBox.Show(
"Clé : " + clef.Current +
" valeur : " + ((
string[])ht[clef.Current])[1]);

<hr size="2" />-Blog-
3
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
16 oct. 2006 à 11:50
Si tu es en .NET2 tu peux éventuellement utiliser un Dictionary (Generics) :

Dictionary<
string,
string[]> dic =
new
Dictionary<
string,
string[]>();

string[] donnees =
new
string[2];
donnees[0] =
"Coefficient de soudure : ";
donnees[1] =
"3,3";
dic.Add(
"z", donnees);

MessageBox.Show(
"valeur : " + dic[
"z"][1]);

<hr size="2" />-Blog-
3
s010179 Messages postés 14 Date d'inscription samedi 1 mars 2003 Statut Membre Dernière intervention 8 novembre 2006
16 oct. 2006 à 12:06
Merci beaucoup pour cette réponse très précieuse.

s010179
0
Rejoignez-nous