下午好。
我非常感谢在VB.NET(不是C#)中构造自定义数组方面的一些帮助。我最近已经从VBA切换到VB.NET,必须承认我喜欢它!但是,我现在遇到了一个问题,显然在我的编程知识上还有很大的差距。
Essentailly,我需要创建一个自定义数组,该数组是根据自定义数组编译的,其中详细说明了建筑工地。
顶层的阵列将是建筑物,在每个建筑物入口内将是一个楼层阵列,然后在每个楼层入口内将是该楼层的区域。在每个级别上,还需要有另一个名称数组(因此,建筑物名称,然后是楼层名称,而不是区域名称,因为所有这些都需要存储在底层。)
现场的建筑物数量,每个建筑物的楼层以及每个建筑物的每个楼层的区域可能因工作而异。而这就是我卡住的地方。
在我的VBA时代,我只是为区域,级别和建筑物声明了一些公共类型,并且将它们作为未定义的数组相互堆叠,但这在VB.NET中不是一个选择(无论如何也可能是一个庞然大物!)
因此,非常感谢您提供的所有协助。我看过“结构”,但认为这不是前进的方向。我提供了我要达到的目标的粗略图,以防万一。
非常感谢
格雷厄姆
VB.NET是一种面向对象的语言,因此请按原样使用它。您在这里不需要任何数组。具有作为其他类的集合的属性的类。像这样:
Public Class Zone
Public Property ZoneName As String
End Class
Public Class Floor
Public Property FloorName As String
Public ReadOnly Property Zones As New List(Of Zone)
End Class
Public Class Building
Public Property BuildingName As String
Public ReadOnly Property Floors As New List(Of Floor)
End Class
Public Class BuildingSite
Public Property BuildingSiteName As String
Public ReadOnly Property Buildings As New List(Of Building)
End Class
然后,您可以创建一个BuildingSite
对象并将Building
对象添加到其Buildings
集合中,然后将Floor
对象添加到其集合中并将对象Floors
添加Zone
到它们的Zones
集合中。这就像一个DataSet
hasDataTables
及其DataRelations
在Tables
andRelations
集合中,每个DataTable
hasDataRows
及其DataColumns
在Rows
andColumns
集合中。
编辑:
这是一个有关如何使用这些类的示例:
Dim z1 As New Zone
z1.ZoneName = "Zone A"
Dim f1 As New Floor
f1.FloorName = "Floor 0"
f1.Zones.Add(z1)
Dim b1 As New Building
b1.BuildingName = "Building A"
b1.Floors.Add(f1)
Dim bs1 As New BuildingSite
bs1.BuildingSiteName = "Building Site 1"
bs1.Buildings.Add(b1)
bs1.Buildings.Add(New Building With {.BuildingName = "Building B"})
Dim b2 = bs1.Buildings(1)
b2.Floors.Add(New Floor With {.FloorName = "Floor 1"})
Dim f2 = b2.Floors(0)
f2.Zones.Add(New Zone With {.ZoneName = "Zone B"})
就像我说的,就像整个.NET Framework的其他许多集合属性示例一样,例如,您可以创建一个DataSet
并将其添加DataTable
到其Tables
集合中,然后再将其添加DataColumn
到该Columns
集合中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句