vb.net - 您将如何在 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?
我想从一开始就以一种聪明的方式来做这件事,而不是冒险在未来重写/重新创建所有东西。所以我的主要问题是:您建议选择哪种方法最明智?如果你能提供一个超小的代码示例。
解决方案
您提到,当您选择一个项目时,您想要获得它的属性。这表明您正在寻找对象。如果不使用数据库,一个示例可能是制作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")
这只是在您的程序中使用的一个示例,希望对您有所帮助。
推荐阅读
- c# - 如何在 GMap.NET 中使地图无限?
- flutter - 如何检查用户是向左还是向右滑动?
- xamarin.forms - Xamarin 表单 NU1202 和 NU1608 错误
- ios - 多行标签因位置约束而中断
- computer-vision - 从 Roll、Yaw、Pitch 和 GPS+Altitude 到 ECEF 转换矩阵的图像
- unreal-engine4 - 虚幻引擎 4 默认球体网格位置
- c - 将大数字作为字符串处理
- php - 致命错误:调用未定义的函数 runQuery()
- c# - protobuf3 中的重复 Int32Value(可为空的 int 数组)
- azure-logic-apps - API 管理 - 多个逻辑应用的单一 API