【发布时间】:2009-09-25 10:58:25
【问题描述】:
我想在 VB.Net 中创建一个具有多列的内存对象。我想要做的是创建一些数据的索引。它看起来像:
第 1 行:23 1 第 2 行:5 1 第 3 行:3 38 ...
我知道我可以使用矩形数组来执行此操作,但我希望能够在此对象上使用 indexOf 操作。 VB.Net中有这样的结构吗?
重量
【问题讨论】:
标签: vb.net multidimensional-array
我想在 VB.Net 中创建一个具有多列的内存对象。我想要做的是创建一些数据的索引。它看起来像:
第 1 行:23 1 第 2 行:5 1 第 3 行:3 38 ...
我知道我可以使用矩形数组来执行此操作,但我希望能够在此对象上使用 indexOf 操作。 VB.Net中有这样的结构吗?
重量
【问题讨论】:
标签: vb.net multidimensional-array
定义一个行类,然后创建一个行列表,如下所示:
Class row
Inherits Collections.ArrayList
End Class
Dim cols As New List(Of row)
现在您可以使用 x/y 符号访问您的对象:
cols(0)(1)
请注意,这只是一个简单的示例,您的结构未初始化且未键入。
您还可以在自己的类中隐藏 IndexOf 函数,例如通过项目名称查找 indexOf:
Class col
Inherits Generic.List(Of Object)
Shadows Function IndexOf(ByVal itemName As String) As Integer
Dim e As Enumerator = Me.GetEnumerator
While e.MoveNext
If CType(e.Current, myType).name = itemName Then
Return e.Current
End If
End While
End Function
End Class
然后您可以像这样访问它:
Private cols As New col
cols.IndexOf("lookingfor")
【讨论】:
如果每行中的单元格数量是恒定的,并且您不需要扩大或缩小结构,那么简单的二维数组可能是最佳选择,因为它展示了最佳的局部性特征。如果没有排序,可以通过简单的线性搜索实现indexOf。
【讨论】:
你可以用字典来做到这一点。
【讨论】: