2009-09-25 9 views
0

Je souhaite créer un objet en mémoire dans VB.Net avec plusieurs colonnes. Ce que j'essaie de faire est de créer un index de certaines données. Il ressemblera:VB.Net - objet de variable de données multi-colonnes

Ligne 1: 23 1 Row 2: 5 1 Row 3: 3 38 ...

Je sais que je peux utiliser un tableau rectangulaire pour ce faire, mais je veux être capable d'utiliser les opearations indexOf sur cet objet. Y a-t-il une telle structure dans VB.Net?

WT

Répondre

0

Définir une classe de ligne, puis créer une liste de lignes, comme ceci:

Class row 
    Inherits Collections.ArrayList 
End Class 

Dim cols As New List(Of row) 

Maintenant, vous pouvez accéder à vos objets en utilisant la notation hache/y:

cols(0)(1) 

note c'est juste un exemple simple, votre structure est non initialisée et non typée.

Vous pouvez également la fonction Ombre IndexOf dans votre propre classe, par exemple trouver le indexOf par le nom d'un élément:

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 

Vous pouvez alors accéder comme si:

Private cols As New col 
cols.IndexOf("lookingfor") 
0

Si le nombre de cellules dans chaque ligne est constante et vous n'avez pas besoin de grandir ou rétrécir la structure, puis d'un simple tableau à deux dimensions est probablement le meilleur choix, parce que ses meilleurs Expose la caractéristiques de localité possibles. S'il n'est pas trié, vous pouvez implémenter indexOf via une simple recherche linéaire.

0

Vous pouvez le faire avec un dictionnaire.