【发布时间】:2015-07-10 01:16:17
【问题描述】:
我在 VB.NET 中需要一些帮助: 我有六个长度相同的数组,但它们的元素具有不同的数据类型(字符串和长)。我需要创建一个多维数组或锯齿状数组,稍后将立即将其复制到 Excel 范围内。
这是可能的还是我只能在数组中包含相同类型的元素?还有其他方法可以替代吗?
【问题讨论】:
标签: arrays vb.net multidimensional-array jagged-arrays
我在 VB.NET 中需要一些帮助: 我有六个长度相同的数组,但它们的元素具有不同的数据类型(字符串和长)。我需要创建一个多维数组或锯齿状数组,稍后将立即将其复制到 Excel 范围内。
这是可能的还是我只能在数组中包含相同类型的元素?还有其他方法可以替代吗?
【问题讨论】:
标签: arrays vb.net multidimensional-array jagged-arrays
您不能拥有包含两种不同类型的多维数组。解决方案是创建一个包含您需要的两个变量的类。
例如,
Public Class MyObject
Public Property MyString As String
Public Property MyInteger As Integer
End Class
以下步骤是在您要创建数组的类中。您可以定义以下内容:
//...
Dim myFancyObjects as MyObject(3)
//...
您可以通过执行以下操作访问您的属性:
Integer testNumber = myFancyObjects(0).myInteger
String testString = myFancyObjects(0).myString
【讨论】:
'用于存储值的类 Public Class HTClass Private Dim m_Arr_1() As Long Public Property Arr_1() As Long() Get Return m_Arr_1 End Get Set m_Arr_1 = value End Set End Property End Class 'Main Class'... Dim HT As New HTClass For i as Integer = 1 to lastRow HT.Arr_1(i - 1 - CLng(offset)) = i Next For i As Long = 1 To 10 MsgBox(HT.Arr_1(i)) Next 但是当我尝试访问最后一个 For-Loop 中的 Property 值时出现错误。按照您的建议声明 HTClass(3) 不起作用,并且出现编译器错误。