2009-09-25 23 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來做到這一點。