首页 > 解决方案 > 您将如何在 VB.NET 中构造具有不同数据类型的数据

问题描述

现在我有很多地方都有这种结构。目前我有: name asstring和 x,y,z 位置 as single。所以它是数据类型的混合,我可能想在未来添加更多数据以及其他数据类型。我必须能够轻松地提取这些数据的任何部分。

我将如何处理这些数据的示例是:当我从组合框中选择 South Wales 时,我想将其属性 x,y,z 填充到文本框中。所以他们需要被“链接”。如果我选择伦敦,那么它将具有 x、y、z 属性等。

我最初的想法是针对dim每一个数据,例如下面的第一个示例。这应该是 100% 控制什么是什么的最简单方法,而且我可以轻松提取任何单个数据,但同时我认为可能会变得乏味,还是我错了?这是解决这个问题的好方法吗?

    Dim SW_FP As String = "South Wales"
    Dim SW_FP_X As Single = "489,1154"
    Dim SW_FP_Y As Single = "-8836,795"
    Dim SW_FP_Z As Single = "109,6124"

下面的下一个例子是我刚刚用谷歌搜索的。这是一个好方法吗?

    Dim dt As DataTable = New DataTable
    dt.Columns.Add("South Wales", GetType(String))
    dt.Columns.Add("489,1154", GetType(Single))
    dt.Columns.Add("-8836,795", GetType(Single))
    dt.Columns.Add("109,6124", GetType(Single))

或者我应该使用其他东西吗?数组,具有属性的对象......这就是我的想法结束的地方。还有其他方法吗?XML?

我想从一开始就以一种聪明的方式来做这件事,而不是冒险在未来重写/重新创建所有东西。所以我的主要问题是:您建议选择哪种方法最明智?如果你能提供一个超小的代码示例。

标签: vb.net

解决方案


您提到,当您选择一个项目时,您想要获得它的属性。这表明您正在寻找对象。如果不使用数据库,一个示例可能是制作Location对象并从中List添加或删除其中的一个。然后你有很多不同的方法来从List. 例如:

班级:

Public Class Location
    Public Property Name As String
    Public Property X As Single
    Public Property Y As Single
    Public Property Z As Single
End Class

列表:

Dim locations As New List(Of Location)
Dim location As New Location With {
    .Name = "South Wales",
    .X = 1.1,
    .Y = 1.2,
    .Z = 1.3
}
locations.Add(location)

LINQ 得到结果:

Dim result = locations.SingleOrDefault(Function(i) i.Name = "South Wales")

这只是在您的程序中使用的一个示例,希望对您有所帮助。


推荐阅读