2010-09-07 7 views
4

J'ai réussi à créer des listes de tableaux à une seule dimension, mais je n'arrive pas à trouver une liste de tableaux multidimensionnelle.vb.net - liste de tableaux multidimensionnels

Voici ce que je suis en train de faire:

J'ai une base de données (mdb) avec 5 colonnes que je veux que chaque ligne dans une liste de tableau.

En PHP ce que je fais en général est:

$ array [$ field1] = array (field2 $, field3 $, field4 $, field5 $);

Comment je fais la même chose dans vb.net alors quand je dois aller chercher un objet pour un spécifique pour le row1 je pourrais l'appeler?

Pour une seule dimension que je pouvais faire ce qui suit, mais je ne peux pas comprendre comment ajouter des champs à une seule rangée de tableau:

Dim tmpArrayX As New ArrayList 
    tmpArrayX.Add(field(0)) 
    tmpArrayX.Add(field(1)) 
    etc... 

Répondre

16

Si vous souhaitez utiliser ArrayList, juste faire est articles contenir d'autres ArrayList s.

Ou vous pouvez utiliser les tableaux normaux comme:

Dim multiArray(2, 2) As String 
multiArray(0, 0) = "item1InRow1" 
multiArray(0, 1) = "item2InRow1" 
multiArray(1, 0) = "item1InRow2" 
multiArray(1, 1) = "item2InRow2" 

Bien que ma préférence personnelle serait d'utiliser List comme:

Dim multiList As New List(Of List(Of String)) 
multiList.Add(New List(Of String)) 
multiList.Add(New List(Of String)) 

multiList(0).Add("item1InRow1") 
multiList(0).Add("item2InRow1") 
multiList(1).Add("item1InRow2") 
multiList(1).Add("item2InRow2") 

Edit: Comment trouver la ligne:

Dim listIWant As List(Of String) = Nothing 
For Each l As List(Of String) In multiList 
    If l.Contains("item1InRow2") Then 
     listIWant = l 
     Exit For 
    End If 
Next 
+1

Cela fonctionne, mais comment puis-je rechercher un élément et retourner l'index? Dire que je fais: multiList (0) .Add ("item1InRow1") multiList (0) .Add ("item2InRow1") multiList (1) .Add ("item1InRow2") multiList (1) .Add ("item2InRow2 ") comment puis-je rechercher" item1InRow2 "et retourner l'index #" 1 "afin que je puisse interroger les autres colonnes dans le tableau? – Joe

+0

@Joe: Pourrait juste faire une boucle, j'ai ajouté un simple échantillon à ma réponse ci-dessus. Peut-être une bonne façon Linq, mais je ne l'ai pas encore utilisé. –

+0

Qu'en est-il d'une liste (2, 3)? Je ne peux pas l'implémenter! Pourriez-vous donner un exemple à ce sujet? Merci d'avance. – Behzad

0

'Cela permet d'ajouter des lignes à la volée ... Testé et ça marche!

Dim multiList As New List(Of List(Of String)) 
Dim ListRow As Integer = 0 

For each record in some_source 
    dim Country as string = record.country 'from some source 
    dim Date as Date = record.Date 'from some source 
    dim Venue as string = record.Venue 'from some source 
    dim Attendance as string = record.Attendance 'from some source 

    multiList.Add(New List(Of String)) 
    multiList(ListRow).Add(Country) 
    multiList(ListRow).Add(Date) 
    multiList(ListRow).Add(Venue) 
    multiList(ListRow).Add(Rating) 
    multiList(ListRow).Add(Attendance) 
    ListRow = ListRow + 1 
next 
Questions connexes