A list of lists
This tip describes how to return a list of lists on your system.
Those of us that have learned the benefits of lists love to use them, but sometimes a list just doesn't fit the bill. What if you need a "list of lists"?
You can do it by just assigning a list to a list of variants. And make it all dynamic, too...
This example illustrates how to use the technique. It is categorizing a two dimensional array into a list of lists, then printing the results.
Sub Initialize %REM This agent creates a list of lists of the groups and groupmembers. %END REM Dim s As New notesSession Dim person As String Dim groupname As String Dim groups List As Variant ' LIST of group names (and LIST of arrays) Dim members List As String ' LIST of member names Dim existmembers As Variant ' utility ARRAY to temporarily hold lists Dim source(2,4) As String Dim ourname(2) As String Dim x As Integer Dim i As Integer ' set up the sample arrays ourname(0) = "tom" ourname(1) = "mike" ourname(2) = "mary" source(0,0) = "blue" source(0,1) = "red" source(0,2) = "white" source(0,3) = "gold" source(0,4) = "black" source(1,0) = "indigo" source(1,1) = "blue" source(1,2) = "black" source(1,3) = "purple" source(1,4) = "green" source(2,0) = "blue" source(2,1) = "pink" source(2,2) = "yellow" source(2,3) = "gold" source(2,4) = "black" 'loops to set up the demo For x = 0 To 2 person = ourname(x) For i = 0 To 4 groupname = source(x, i) '*********************demo code ********************************** If Iselement(groups(groupname)) Then ' use a variant to hold an existing list existmembers = groups(groupname) existmembers(person) = person groups(groupname) = existmembers Else ' create a new list and assign it to a list of variants members(person) = person groups(groupname) = members End If Erase members '*********************demo code ********************************** Next Next ' print the demo results Forall y In groups existmembers = y result = "Group " + Listtag(y) + " contains: " Forall z In existmembers result = result + Listtag(z) + ", " End Forall Print result End Forall End Sub