2009-09-25 43 views
0

我想在VB.Net中创建一个带有多列的内存中对象。我想要做的是创建一些数据的索引。它看起来像:VB.Net - 多列数据变量对象

行1:23 1 行2:5 1 行3:3 38 ...

我知道我可以使用一个矩形阵列要做到这一点,但我想能够在这个对象上使用indexOf操作。 VB.Net中是否有这样的结构?

WT

回答

0

定义行类,然后创建行的列表,像这样:

Class row 
    Inherits Collections.ArrayList 
End Class 

Dim cols As New List(Of row) 

现在,您可以访问使用斧/ 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") 
0

如果每行单元的数量是恒定的,你并不需要增长或收缩结构,那么一个简单的二维数组可能是最好的选择,因为它暴露了最好的可能的局部特征。如果未排序,则可以通过简单的线性搜索来实现indexOf。

0

你可以用Dictionary来做到这一点。