Convert array to dictionary in Visual Basic
This Visual Basic example shows how to group the array of the elements into the dictionary by using the key selector
Sub main() Dim strArr(6) As String strArr(0) = "A" strArr(1) = "B" strArr(2) = "C" strArr(3) = "A" strArr(4) = "B" strArr(5) = "C" strArr(6) = "C" Dim groups As Object Set groups = ToDictionary(strArr) 'A x 2 'B x 2 'C x 3 For Each key In groups.Keys Debug.Print key & " x " & UBound(groups.Item(key)) + 1 Next End Sub Function ToDictionary(arr As Variant) As Object Dim dict As Object Set dict = CreateObject("Scripting.Dictionary") If Not IsEmpty(arr) Then For Each elem In arr Dim group() As Variant Dim key As Variant key = KeySelector(elem) If dict.Exists(key) Then group = dict.Item(key) ReDim Preserve group(UBound(group) + 1) group(UBound(group)) = elem dict.Item(key) = group Else ReDim group(0) group(0) = elem dict.Add key, group End If Next End If Set ToDictionary = dict End Function 'modify the key selector to work with complex structures if required Function KeySelector(elem As Variant) As Variant KeySelector = elem End Function