VB.NET-多级多类型数组

gcaspall

下午好。

我非常感谢在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集合中。这就像一个DataSethasDataTables及其DataRelationsTablesandRelations集合中,每个DataTablehasDataRows及其DataColumnsRowsandColumns集合中。

编辑:

这是一个有关如何使用这些类的示例:

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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

图像数组VB.NET

来自分类Dev

VB.Net MaskedTextBox 数组

来自分类Dev

vb.net填充多列listview

来自分类Dev

VB.NET多文件打开问题

来自分类Dev

vb.net填充多列listview

来自分类Dev

vb.net中的匿名类型

来自分类Dev

类型未定义 VB.NET

来自分类Dev

VB.net & LINQ - 识别日期类型

来自分类Dev

vb.net中的常量共享数组

来自分类Dev

在VB.NET中访问数组

来自分类Dev

Vb.Net-使用多维数组

来自分类Dev

vb.net中的数组循环

来自分类Dev

复选框数组VB.NET

来自分类Dev

使用数组VB .net的多个属性

来自分类Dev

阅读Json数组vb.net

来自分类Dev

在vb.net中初始化单行多列数组

来自分类Dev

从类型'DBNull'到类型'String'的转换无效vb.net

来自分类Dev

VB.NET将“类”类型的值转换为“类型”

来自分类Dev

VB.Net变量声明:类型还是不类型?

来自分类Dev

如何在 VB.Net 中为任何类型的 Enum 数组创建扩展方法

来自分类Dev

使用 vb.net 的属性、数组和数组列表

来自分类Dev

从多对多表(VB.Net,.edmx)中删除行

来自分类Dev

Vb.Net测验应用程序多视图

来自分类Dev

使用VB.NET发送多播推送通知

来自分类Dev

WPF MVVM VB.Net 多视图应用

来自分类Dev

VB.net和C#中不同的对象类型

来自分类Dev

vb.net中是否存在“全局”类型的导入语句?

来自分类Dev

VB.NET-如何打开给定文件类型的文件?

来自分类Dev

在Mustinherit类中返回自类型-VB.NET