I'm currently trying to make a vocabulary/flash-card program so I want an array that can store multiple values per item. That way I can shuffle the "cards" (array items) while keeping the word, definition, and part of speech on the same "card". So if I where to access the array I would want to be able to do something like this:

Code:
Dim vocabList as VocabArray
vocabList(0).Word = "blah"
vocabList(0).Definition = "blah"
vocabList(1).Definition = "blah"
And then if I where to re-arrange them the properties would remain together but just in a different spot of the array.

I can get really close to this using an Item Structure and declaring the variable name with () but the problem is I have to include a number with () and I need to be able to add infinite values to the array, I can't have a set number.Also I would prefer to make it like an ArrayList as it has .Add, .RemoveAt, .Insert etc. In normal Arrays there's no easy way to add, you have to resize and stuff.


Anyways here's close to what I want, but I can't have a set amount and I'd prefer the ArrayList structure so I can just have like Array.Add and then have a Item added onto the end with 3 variables on it. The only thing is that with .Add you usually put something in paranthesis after it to denote the value to add, but if I have 3 possible values then I would have to have parameters for it or something, like .Add(Word, Definition).

Code:
Structure SpecialArrayList
Public Property1 as String
Public Property2 as String
End Structure

'Random spot in program
Dim theList(2) as SpecialArrayList
theList(0).Property1 = "Blah"
etc...
Also I'm willing to look at any alternate solutions.