2008-09-25 4 views
1

Je dois créer un Hashtable/dictionnaire (imbriqué) pluridimensionnelle afin que je puisse utiliser la syntaxe commeCréation d'une table de hachage multidimensionnelle avec des génériques dans VB ASP.NET?

val = myHash("Key").("key") 

Je sais que je dois utiliser Generics mais je ne peux pas comprendre la syntaxe correcte en utilisant VB ASP.NET 2.0, il y a beaucoup d'exemples de C# sur le net mais ils n'aident pas beaucoup.

À la votre!

+0

* plusieurs - s'il vous plaît relues. – GEOCHET

Répondre

2

OK, je suis mieux que C# vb.net, mais je vais donner un aller ....

Dim myHash as Dictionary(Of string, Dictionary(Of string, Integer)); 
+0

Cela me semble juste, mais je suis aussi beaucoup plus d'une personne C# que VB.NET ... –

+0

Malheureusement, il n'y a pas de type de dictionnaire dans VB.NET autant que je peux voir. IntelliSense n'aime pas cet extrait et veut le changer en ListDictionary ou HybridDictionary, les deux donnant alors le message d'erreur: "... n'a aucun paramètre de type et ne peut donc pas avoir d'arguments de type" –

+0

Umm, MSDN dit qu'il existe. Incluez-vous la bonne instruction Imports pour System.Collections.Generic? http://msdn.microsoft.com/en-us/library/xfhwa508(VS.80).aspx –

0

Il y a aussi le System.Collections.Specialized.StringDictionary (Of T) collection, qui est juste un dictionnaire prédéfini (Of String, T).

Et la syntaxe à utiliser le dictionnaire normal ou le StringDictionary ressemblerait à ceci:

val = myHash("key")("key") 

Pas comme ça:

val = myHash("key").("key") 
0

considérerons que vous ne devrez peut-être utiliser le dictionnaire, et qui peut composer vos multiples clés en un seul objet clé avec son propre code de hachage composite. Par exemple. faire une classe multikey et ensuite l'utiliser comme clé.

dans pseudocode:

class Multikey { 
private keys; 
public setKey1(...) 
public setKey2(...) 
} 
Dim myKey as MultiKey(...) 
myKey.key1 = ... 
myKey.key2 = ... 

Dim mydic as Dictionary(Of MultiKey, Integer) 

val = mydic(myKey) 
+0

Il perd son sucre sytnactique, cependant. –

+0

Vous avez raison. Mais là encore, il y a: val = dic.get (nouveau MultiKey ("key1"). ("Key2")) – Josh

+0

À moins que je ne manque quelque chose, vous ne seriez jamais capable de le sortir. Vous pouvez créer un nouvel objet clé à partir des mêmes valeurs, mais il ne pointera pas sur le même objet dans le dictionnaire, car il s'agit d'un objet différent. – dwidel

Questions connexes