【问题标题】:.NET - I want to do this: Dim D as new Dictionary(of String, Array(OF MYOBJECT)).NET - 我想这样做:Dim D as new Dictionary(of String, Array(OF MYOBJECT))
【发布时间】:2010-12-09 16:48:21
【问题描述】:

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

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

如果我只做以下事情:

Dim D as new Dictionary(of String, Array)

每次访问会员时,我都觉得自己错过了一些表现:

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

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

【问题讨论】:

    标签: .net vb.net arrays dictionary containers


    【解决方案1】:

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

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

    这就像一个魅力。

    【讨论】:

    • 我想你最后多了一个 () :)
    • @hamlin11:不,我不知道。括号属于那里:这是一个构造函数调用! VB 不需要在方法调用(仅带参数的函数调用)上使用括号,但 IDE 在大多数(不是全部)情况下会自动添加它们。上面是没有加括号的一种情况,很遗憾,因为它不一致。我更喜欢代码一致性,因此我倾向于在所有方法调用上添加括号。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • 根据您希望如何使用数组,其他帖子建议的Dim D as New Dictionary(Of String, MyObject())() 可能是更好的选择。 :P
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-28
      • 2012-10-27
      • 1970-01-01
      • 2022-11-14
      • 2010-10-06
      • 2021-04-15
      • 2022-12-01
      相关资源
      最近更新 更多