【问题标题】:Multidimensional Associative Arrays in VB.NET?VB.NET 中的多维关联数组?
【发布时间】:2009-12-15 21:06:26
【问题描述】:

在 VB.NET 中是否有类似的 php 内容?:

$var["a1"]['name']="Mike";
$var["a1"]['nick']="MMM";

我在 .net 中尝试过哈希表、字典、列表和数组,我能得到的只是一个简单的 key=>value 数组 如果没有,是否有一个简单的解决方案,是否有一个类或其他东西?

谢谢。

【问题讨论】:

    标签: vb.net arrays multidimensional-array associative


    【解决方案1】:

    您总是可以创建一个结构并将其放入字典中。

    类似这样的:

    Private Structure Person
      Public Name as String
      Public Nick as String
    End Structure
    

    然后你的字典是这样的:

      Dim myDictionary as Collections.Generic.Dictionary(Of String, Person)
    

    【讨论】:

    • @Meta 结构更轻量级,所以如果您不需要类提供的所有面向对象的东西,通常最好使用结构。
    • 据我了解,结构只有在仅包含值类型(其他结构)时才是轻量级的。这是因为值类型可以存储在堆栈中,并且避免了在堆上查找对对象的引用对性能的小影响。 String 是一个类,存储在堆上,所以一个包含两个字符串的结构并不比一个包含两个字符串的类更轻量级。
    • @Joel 是的。就是这样。然而,类也支持继承和多态性,而结构则不支持。这就是我之前提到的开销。另外,请记住,如果您正在执行大量操作,那么结构仍然会更可取,因为它位于堆栈上(即使其中的字符串/对象仍在堆上)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-25
    • 2021-05-23
    • 2011-09-03
    • 2015-01-21
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    相关资源
    最近更新 更多