VisualBasic verschachteltes, assoziatives Array... gibt es sowas überhaupt bei VBA?

-]Dr.OeTz![-

Lt. Junior Grade
Registriert
Nov. 2009
Beiträge
509
Hallo Zusammen,

ich versuche gerade ein verschachteltes und gleichzeitig assoziatives Array zu erstellen und scheitere kläglich.

Ziel ist es, ein Array zu erstellen, dass verschiedene Produkte unterschiedlicher Kategorien enthalten kann.

Später möchte ich nur die Produkte einer bestimmten Kategorie auslesen können. Die Kategorie muss ich anhand eines Strings übergeben können. Das Array sollte beliebig viele Kategorien und Items enthalten können

Beispiel:
MyArray[Kat1][Item1]
MyArray[Kat1][Item2]
MyArray[Kat1][Item3]
MyArray[Kat2][Item1]
MyArray[Kat2][Item2]
MyArray[Kat3][Item1]

Frage 1:
Wie muss ein solches Array deklariert werden? Ist ein Array hier überhaupt das richtige?

Frage 2:
Wie kann ich so ein Array am komfortabelsten auslesen, wenn ich die Bezeichnung der gewählten Kategorie als String übergebe.

Vielen Dank schon mal im Voraus für euren Input.
 
Zuletzt bearbeitet:
ich gebe zu: Daran scheitere ich... Mir ist nicht klar, wie ich das für den oben genannten Zweck verwenden kann. Habe auch gelesen, dass dieses Objekt häufig blockiert wird(?)
 
Bin jetzt nur am Handy und hab den Code von C# nach VB konvertieren lassen.

In diesem Code wird eine Liste statt eines Arrays verwendet. Kannst natürlich auch ein Array verwenden.

Am Anfang wird das Dictionary wie von @madmax2010 vorgeschlagen. Danach wird eine Kategorie mit keinen Items angelegt. Danach wird die Liste an Items über den Namen der Kategorie ausgelesen und gefüllt. Würde man jetzt später wieder anhand der Kategorie die Items auslesen, so wären zwei Items in der Liste.

Code:
Private Sub SurroundingSub()
    Dim itemsInCategories As Dictionary(Of String, List(Of String)) = New Dictionary(Of String, List(Of String))()
    ' adding empty categories
    itemsInCategories.Add("Kat1", New List(Of String)())
    itemsInCategories.Add("Kat2", New List(Of String)())
    ' get items of category
    Dim itemsOfCategoryKat1 = itemsInCategories("Kat1")
    ' add items
    itemsOfCategoryKat1.Add("Item1")
    itemsOfCategoryKat1.Add("Item2")
End Sub
 
  • Gefällt mir
Reaktionen: -]Dr.OeTz![- und madmax2010
Zurück
Oben