Vb.net 在VB ASP.NET中使用泛型创建多维哈希表?

Vb.net 在VB ASP.NET中使用泛型创建多维哈希表?,vb.net,generics,asp.net-2.0,Vb.net,Generics,Asp.net 2.0,我需要创建一个多维(嵌套的)哈希表/字典,以便使用如下语法 val = myHash("Key").("key") 我知道我需要使用泛型,但我无法在ASP.NET2.0中使用VB找出正确的语法,网络上有很多c#示例,但它们帮助不大 干杯 好吧,我在C#方面比vb.net好,但我会试试 Dim myHash as Dictionary(Of string, Dictionary(Of string, Integer)); 还有System.Collections.Specialized.Str

我需要创建一个多维(嵌套的)哈希表/字典,以便使用如下语法

val = myHash("Key").("key")
我知道我需要使用泛型,但我无法在ASP.NET2.0中使用VB找出正确的语法,网络上有很多c#示例,但它们帮助不大

干杯

好吧,我在C#方面比vb.net好,但我会试试

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

还有System.Collections.Specialized.StringDictionary(Of T)集合,它只是一个预定义的字典(Of String,T)

使用普通字典或StringDictionary的语法如下所示:

val = myHash("key")("key")
val = myHash("key").("key")
不是这样的:

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

考虑到您可能只需要使用Dictionary,这样就可以将多个键组合成一个具有自己的复合哈希代码的键对象。例如,创建一个多键类,然后将其用作键

在伪代码中:

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)

不幸的是,据我所知,VB.NET中没有字典类型。IntelliSense不喜欢该代码段,希望将其更改为ListDictionary或HybridDictionary,这两个代码段都会给出错误消息:“……没有类型参数,因此不能有类型参数”。嗯,MSDN说它存在。是否为System.Collections.Generic包含正确的导入语句?啊!我不是一般的。谢谢他失去了他的合成糖,你说得对。但是还有:val=dic.get(新的多键(“key1”)(“key2”)),除非我遗漏了什么,否则你永远无法把它弄出来。您可以从相同的值创建新的键对象,但它不会指向字典中的相同对象,因为它是不同的对象。