Imports System
Imports System.Collections.Generic
Imports System.Linq
Class GroupAnagrams
Public Shared Function GroupAnagramsMethod(ByVal strs As String()) As List(Of List(Of String))
Dim anagramMap = New Dictionary(Of String, List(Of String))()
For Each str As String In strs
Dim charArray As Char() = str.ToCharArray()
Array.Sort(charArray)
Dim sortedStr As String = New String(charArray)
If Not anagramMap.ContainsKey(sortedStr) Then
anagramMap(sortedStr) = New List(Of String)()
End If
anagramMap(sortedStr).Add(str)
Next
Return anagramMap.Values.ToList()
End Function
Public Shared Sub Main()
Dim input As String() = {"eat", "tea", "tan", "ate", "nat", "bat", "tae"}
Dim groupedAnagrams As List(Of List(Of String)) = GroupAnagramsMethod(input)
For Each group As List(Of String) In groupedAnagrams
Console.WriteLine(String.Join(", ", group))
Next
End Sub
End Class
' run:
'
' eat, tea, ate, tae
' tan, nat
' bat
'