Pergunta

Eu preciso criar um multi-dimensional (aninhado) hashtable / dicionário para que eu possa usar sintaxe como

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

Eu sei que eu preciso usar Generics, mas eu não consigo descobrir a sintaxe correta usando VB no ASP.NET 2.0, há uma abundância de exemplos c # na net, mas eles não estão ajudando muito.

Felicidades!

Foi útil?

Solução

OK, eu sou melhor em C # que vb.net, mas vou dar um presente ir ....

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

Outras dicas

Há também a System.Collections.Specialized.StringDictionary (Of T) coleção, que é apenas um dicionário pré-definidos (Of String, T).

E a sintaxe para usar o dicionário normal ou o StringDictionary ficaria assim:

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

Não assim:

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

Considere que você pode precisar apenas de usar dicionário, e que pode compor suas várias chaves em um único objeto chave com o seu próprio código de hash composta. Por exemplo. fazer uma classe multikey e usá-lo como a chave.

em pseudocódigo:

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)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top