[C# 2.0] Récupérer les Hashtable stockés dans des ArrayList
2 réponses
cooladn
Bonjour à tous!
Débutant en C#, je cherche à comprendre comment récupérer des Hashtable
stockés dans des ArrayList.
J'ai écris un programme qui parse du xml, et stocke chaque attribut dans un
Hashtable (le nom de l'attribut étant la clé). Comme mon fichier xml contient
500 référence et que je dois exécuter des traitements après, je stocke le
hashtable créé dans un tableau de type ArrayList.
Lorsque j'effectue une boucle sur ce tableau, je ne peux accéder à mon
tableau Hashtable:
- arrTemplates[i]["ma_cle"] me retorune une erreur.
- Stocké arrTemplates[i] dans un élément Hashtable tableau me retourne
l'erreur suivante : Cannot implicitly convert type 'object' to
'System.Collections.Hashtable'. An explicit conversion exists (are you
missing a cast?)
Pour tant lorsque je fais Console.WriteLine(tableau.GetType()), j'obtiens
bien System.Collections.Hashtable.
Quelqu'un pourrait il m'expliquer ?
Ai je mal choisi les types à utiliser ?
Si c'ets le cas, que dois je utiliser pour avoir un tableau qu'on puisse
incrémenter, et dans lequel chaque element contient des valeurs accessible
par des key ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Remi THOMAS
cooladn a écrit :
Bonjour à tous! Débutant en C#, je cherche à comprendre comment récupérer des Hashtable stockés dans des ArrayList.
J'ai écris un programme qui parse du xml, et stocke chaque attribut dans un Hashtable (le nom de l'attribut étant la clé). Comme mon fichier xml contient 500 référence et que je dois exécuter des traitements après, je stocke le hashtable créé dans un tableau de type ArrayList.
Lorsque j'effectue une boucle sur ce tableau, je ne peux accéder à mon tableau Hashtable: - arrTemplates[i]["ma_cle"] me retorune une erreur. - Stocké arrTemplates[i] dans un élément Hashtable tableau me retourne l'erreur suivante : Cannot implicitly convert type 'object' to 'System.Collections.Hashtable'. An explicit conversion exists (are you missing a cast?)
Pour tant lorsque je fais Console.WriteLine(tableau.GetType()), j'obtiens bien System.Collections.Hashtable.
Quelqu'un pourrait il m'expliquer ? Ai je mal choisi les types à utiliser ? Si c'ets le cas, que dois je utiliser pour avoir un tableau qu'on puisse incrémenter, et dans lequel chaque element contient des valeurs accessible par des key ?
Merci
Bonjour, Il faut forcer le type car un ArrayList contient des object uniquement et est déclaré comme tel. Le compilateur ne peut deviner le type ((HashTable)arrTemplates[i])["ma_cle"] va fonctionner.
Comme tu es en C# 2.0 tu peux utiliser les generics pour faire cela automatiquement List<HashTable> arrTemplates = new List<HashTable>(); ... HashTable tmp = new HashTable(); ... arrTemplates.Add(tmp); ... arrTemplates[i]["ma clé"] fonctionnera car la List est typée.
Rémi
cooladn a écrit :
Bonjour à tous!
Débutant en C#, je cherche à comprendre comment récupérer des Hashtable
stockés dans des ArrayList.
J'ai écris un programme qui parse du xml, et stocke chaque attribut dans un
Hashtable (le nom de l'attribut étant la clé). Comme mon fichier xml contient
500 référence et que je dois exécuter des traitements après, je stocke le
hashtable créé dans un tableau de type ArrayList.
Lorsque j'effectue une boucle sur ce tableau, je ne peux accéder à mon
tableau Hashtable:
- arrTemplates[i]["ma_cle"] me retorune une erreur.
- Stocké arrTemplates[i] dans un élément Hashtable tableau me retourne
l'erreur suivante : Cannot implicitly convert type 'object' to
'System.Collections.Hashtable'. An explicit conversion exists (are you
missing a cast?)
Pour tant lorsque je fais Console.WriteLine(tableau.GetType()), j'obtiens
bien System.Collections.Hashtable.
Quelqu'un pourrait il m'expliquer ?
Ai je mal choisi les types à utiliser ?
Si c'ets le cas, que dois je utiliser pour avoir un tableau qu'on puisse
incrémenter, et dans lequel chaque element contient des valeurs accessible
par des key ?
Merci
Bonjour,
Il faut forcer le type car un ArrayList contient des object uniquement
et est déclaré comme tel. Le compilateur ne peut deviner le type
((HashTable)arrTemplates[i])["ma_cle"] va fonctionner.
Comme tu es en C# 2.0 tu peux utiliser les generics pour faire cela
automatiquement
List<HashTable> arrTemplates = new List<HashTable>();
...
HashTable tmp = new HashTable();
...
arrTemplates.Add(tmp);
...
arrTemplates[i]["ma clé"] fonctionnera car la List est typée.
Bonjour à tous! Débutant en C#, je cherche à comprendre comment récupérer des Hashtable stockés dans des ArrayList.
J'ai écris un programme qui parse du xml, et stocke chaque attribut dans un Hashtable (le nom de l'attribut étant la clé). Comme mon fichier xml contient 500 référence et que je dois exécuter des traitements après, je stocke le hashtable créé dans un tableau de type ArrayList.
Lorsque j'effectue une boucle sur ce tableau, je ne peux accéder à mon tableau Hashtable: - arrTemplates[i]["ma_cle"] me retorune une erreur. - Stocké arrTemplates[i] dans un élément Hashtable tableau me retourne l'erreur suivante : Cannot implicitly convert type 'object' to 'System.Collections.Hashtable'. An explicit conversion exists (are you missing a cast?)
Pour tant lorsque je fais Console.WriteLine(tableau.GetType()), j'obtiens bien System.Collections.Hashtable.
Quelqu'un pourrait il m'expliquer ? Ai je mal choisi les types à utiliser ? Si c'ets le cas, que dois je utiliser pour avoir un tableau qu'on puisse incrémenter, et dans lequel chaque element contient des valeurs accessible par des key ?
Merci
Bonjour, Il faut forcer le type car un ArrayList contient des object uniquement et est déclaré comme tel. Le compilateur ne peut deviner le type ((HashTable)arrTemplates[i])["ma_cle"] va fonctionner.
Comme tu es en C# 2.0 tu peux utiliser les generics pour faire cela automatiquement List<HashTable> arrTemplates = new List<HashTable>(); ... HashTable tmp = new HashTable(); ... arrTemplates.Add(tmp); ... arrTemplates[i]["ma clé"] fonctionnera car la List est typée.
Rémi
Remi THOMAS
cooladn a écrit :
Bonjour à tous! Débutant en C#, je cherche à comprendre comment récupérer des Hashtable stockés dans des ArrayList.
J'ai écris un programme qui parse du xml, et stocke chaque attribut dans un Hashtable (le nom de l'attribut étant la clé). Comme mon fichier xml contient 500 référence et que je dois exécuter des traitements après, je stocke le hashtable créé dans un tableau de type ArrayList.
Lorsque j'effectue une boucle sur ce tableau, je ne peux accéder à mon tableau Hashtable: - arrTemplates[i]["ma_cle"] me retorune une erreur. - Stocké arrTemplates[i] dans un élément Hashtable tableau me retourne l'erreur suivante : Cannot implicitly convert type 'object' to 'System.Collections.Hashtable'. An explicit conversion exists (are you missing a cast?)
Pour tant lorsque je fais Console.WriteLine(tableau.GetType()), j'obtiens bien System.Collections.Hashtable.
Quelqu'un pourrait il m'expliquer ? Ai je mal choisi les types à utiliser ? Si c'ets le cas, que dois je utiliser pour avoir un tableau qu'on puisse incrémenter, et dans lequel chaque element contient des valeurs accessible par des key ?
Merci
Bonjour, Il faut forcer le type car un ArrayList contient des object uniquement et est déclaré comme tel. Le compilateur ne peut deviner le type ((HashTable)arrTemplates[i])["ma_cle"] va fonctionner.
Comme tu es en C# 2.0 tu peux utiliser les generics pour faire cela automatiquement List<HashTable> arrTemplates = new List<HashTable>(); ... HashTable tmp = new HashTable(); ... arrTemplates.Add(tmp); ... arrTemplates[i]["ma clé"] fonctionnera car la List est typée.
Rémi
cooladn a écrit :
Bonjour à tous!
Débutant en C#, je cherche à comprendre comment récupérer des Hashtable
stockés dans des ArrayList.
J'ai écris un programme qui parse du xml, et stocke chaque attribut dans un
Hashtable (le nom de l'attribut étant la clé). Comme mon fichier xml contient
500 référence et que je dois exécuter des traitements après, je stocke le
hashtable créé dans un tableau de type ArrayList.
Lorsque j'effectue une boucle sur ce tableau, je ne peux accéder à mon
tableau Hashtable:
- arrTemplates[i]["ma_cle"] me retorune une erreur.
- Stocké arrTemplates[i] dans un élément Hashtable tableau me retourne
l'erreur suivante : Cannot implicitly convert type 'object' to
'System.Collections.Hashtable'. An explicit conversion exists (are you
missing a cast?)
Pour tant lorsque je fais Console.WriteLine(tableau.GetType()), j'obtiens
bien System.Collections.Hashtable.
Quelqu'un pourrait il m'expliquer ?
Ai je mal choisi les types à utiliser ?
Si c'ets le cas, que dois je utiliser pour avoir un tableau qu'on puisse
incrémenter, et dans lequel chaque element contient des valeurs accessible
par des key ?
Merci
Bonjour,
Il faut forcer le type car un ArrayList contient des object uniquement
et est déclaré comme tel. Le compilateur ne peut deviner le type
((HashTable)arrTemplates[i])["ma_cle"] va fonctionner.
Comme tu es en C# 2.0 tu peux utiliser les generics pour faire cela
automatiquement
List<HashTable> arrTemplates = new List<HashTable>();
...
HashTable tmp = new HashTable();
...
arrTemplates.Add(tmp);
...
arrTemplates[i]["ma clé"] fonctionnera car la List est typée.
Bonjour à tous! Débutant en C#, je cherche à comprendre comment récupérer des Hashtable stockés dans des ArrayList.
J'ai écris un programme qui parse du xml, et stocke chaque attribut dans un Hashtable (le nom de l'attribut étant la clé). Comme mon fichier xml contient 500 référence et que je dois exécuter des traitements après, je stocke le hashtable créé dans un tableau de type ArrayList.
Lorsque j'effectue une boucle sur ce tableau, je ne peux accéder à mon tableau Hashtable: - arrTemplates[i]["ma_cle"] me retorune une erreur. - Stocké arrTemplates[i] dans un élément Hashtable tableau me retourne l'erreur suivante : Cannot implicitly convert type 'object' to 'System.Collections.Hashtable'. An explicit conversion exists (are you missing a cast?)
Pour tant lorsque je fais Console.WriteLine(tableau.GetType()), j'obtiens bien System.Collections.Hashtable.
Quelqu'un pourrait il m'expliquer ? Ai je mal choisi les types à utiliser ? Si c'ets le cas, que dois je utiliser pour avoir un tableau qu'on puisse incrémenter, et dans lequel chaque element contient des valeurs accessible par des key ?
Merci
Bonjour, Il faut forcer le type car un ArrayList contient des object uniquement et est déclaré comme tel. Le compilateur ne peut deviner le type ((HashTable)arrTemplates[i])["ma_cle"] va fonctionner.
Comme tu es en C# 2.0 tu peux utiliser les generics pour faire cela automatiquement List<HashTable> arrTemplates = new List<HashTable>(); ... HashTable tmp = new HashTable(); ... arrTemplates.Add(tmp); ... arrTemplates[i]["ma clé"] fonctionnera car la List est typée.