.NET-我想这样做:Dim D作为新字典(字符串、数组(MYOBJECT))

.NET-我想这样做:Dim D作为新字典(字符串、数组(MYOBJECT)),.net,vb.net,arrays,dictionary,containers,.net,Vb.net,Arrays,Dictionary,Containers,我想创建一个按字符串索引的词典:Dictionary(of String,…) 我希望逗号后的类型是MyObject的数组 如果我所做的只是以下几点: Dim D as new Dictionary(of String, Array) Dim D as new Dictionary(of String, MyObject()) 每当我访问会员时,我感觉自己错过了一些表演: Dim Object1 as MyObject = MyDictionary("Key1")(4) 每次我以这种方式访

我想创建一个按字符串索引的词典:Dictionary(of String,…)

我希望逗号后的类型是MyObject的数组

如果我所做的只是以下几点:

Dim D as new Dictionary(of String, Array)
Dim D as new Dictionary(of String, MyObject())
每当我访问会员时,我感觉自己错过了一些表演:

Dim Object1 as MyObject = MyDictionary("Key1")(4)

每次我以这种方式访问数组时,它是否必须执行某种类型的查找来确定数组所持有的对象的类型?

使用数组,在检索时将调用类型转换。这个怎么样:

Dim D as new Dictionary(of String, List(of MyObject))

如果该值确实需要是MyObject的数组,则可以执行以下操作:

Dim D as new Dictionary(of String, Array)
Dim D as new Dictionary(of String, MyObject())

Array
不是你想要的;而是使用您想要的强类型数组:

Dim D as New Dictionary(Of String, MyObject())()

这就像一个符咒。

根据您希望如何使用数组,其他帖子建议的作为新字典(字符串,MyObject())的Dim D()可能是更好的选择:我想你在结尾有一个额外的():)@hamlin11:不,我没有。括号就在那里:这是一个构造函数调用!VB不需要在方法调用(仅带参数的函数调用)上使用括号,但IDE会在大多数(并非所有)情况下自动添加括号。上面是一个没有添加括号的情况,这是一个遗憾,因为它不一致。我更喜欢代码一致性,因此我倾向于在所有方法调用上添加偏执。