【问题标题】:Multidimensional Associative Array in VB.NETVB.NET中的多维关联数组
【发布时间】:2009-06-07 19:05:10
【问题描述】:

您好,谁能给我看一个 vb.net 中多维关联数组的示例。需要数组来保存人名、年龄和其他一些设置。希望能够使用字典来使用 People.Add。

谢谢

--标记

【问题讨论】:

  • 您是否有任何具体原因不想创建具有不同值的 Person 类并将 Person 对象放在列表中?

标签: asp.net vb.net arrays


【解决方案1】:

想想面向对象。您应该使用一个类将属性相互关联。示例:

Class Person

   Private _name as String
   Private _age as Integer

   Public ReadOnly Property Name
      Get
         Return _name
      End Get
   End Property

   Public ReadOnly Property Age
      Get
         Return _age
      End Get
   End Property

   Public Sub New(name As String, age as Integer)
      _name = name
      _age = age
   End Sub

End Class

现在您可以将人们放入字典中:

Dim people As New Dictionary(Of String, Person)()
people.Add("John", new Person("John", 42))
people.Add("Jane", new Person("Jane", 12))

【讨论】:

  • 同意,但稍微偏离主题,您认为应该立即上课吗?仅从问题示例来看,人并不比相关数据集更深。这不就是结构存在的原因吗?
  • @Matthew:不,存在结构来创建值类型。对于所有不同的属性,一个人的数据作为一个单一的值是没有意义的。
  • 但是如果你看一下 DateTime 结构。那里的许多属性都与一个概念有关。里面甚至还有一些方法。当它可以很容易地成为一个类时,他们为什么选择将它作为一个结构体。
  • 刚发现这个问题。 stackoverflow.com/questions/85553/… 让我相信这确实应该是一门课。感谢您回答我的问题 Guffa。
  • DateTime 结构实际上只包含一个 Int64,它保存 Ticks 和 Kind 属性的数据。所有其他属性都是从这两个派生而来的。
猜你喜欢
  • 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
相关资源
最近更新 更多