8
votes

Aide avec tables de hachage contenant des tableaux de chaîne en C #


J'ai un code comme celui-ci.

string s = ht["LSN"][0];


0 commentaires

7 Réponses :


9
votes

Je pense que vous voulez utiliser un dictionnaire typé générique plutôt qu'une haquetable: xxx

ceci devrait compiler correctement.

sinon vous devez effectuer une distribution telle que : xxx


1 commentaires

+1 pour le dictionnaire. C'est le meilleur type de montage de ce type de problèmes.



2
votes

Magasins HASHTABLE OBJETS UNTTYPETE: vous auriez besoin de repousser la valeur que vous avez lisée dans une matrice à chaîne, par exemple

Dictionary<string, string[]> ht = new Dictionary<string, string[]>();
...
string s = ht["LSN"][0];


0 commentaires

1
votes

Votre ht ["lsn"] [0] code> vous retournera un tableau de chaînes. Vous devez donc ajouter un autre indexeur pour obtenir une valeur appropriée.

((string[])ht["LSN"][0])[0]


0 commentaires

1
votes

Etant donné que HASHTABLE Les contenus sont exposés sous forme d'objet vous devez lancer: xxx

mais vous seriez probablement mieux en utilisant un Conteneur fortement typé comme suggéré par Nick .


0 commentaires

1
votes

the indexer du Hashtable La classe renvoie toujours une instance de objet . Vous devrez lancer cet objet à un tableau de chaînes: xxx

qui dit, envisagez d'utiliser le générique Dictionnaire classe à la place.


0 commentaires

1
votes
string[] aStrings = (string[])ht["LSN"];
string s = aStrings[0];

0 commentaires

2
votes

Votre HASHTABLE est d'un objet de type .. Lorsque vous essayez d'accéder à la matrice, vous obtiendrez une erreur car l'objet ne prend pas en charge la syntaxe d'accesseur de tableau que vous utilisez. Si vous avez utilisé un dictionnaire, comme expliqué dans d'autres réponses, vous pouvez utiliser des génériques pour définir que vous utilisez des tableaux de chaîne Rathe que des objets, ce qui fonctionnera comme vous le souhaitez.

Alternativement, vous pouvez lancer vos variables comme ceci: xxx

Cela vous donnera l'accès à la température que vous désirez.


0 commentaires