using System;
using System.Collections.Generic;
using System.Linq;
class GroupAnagrams
{
public static List<List<string>> GroupAnagramsMethod(string[] strs) {
var anagramMap = new Dictionary<string, List<string>>();
foreach (string str in strs) {
char[] charArray = str.ToCharArray();
Array.Sort(charArray); // Sort the characters
string sortedStr = new string(charArray);
if (!anagramMap.ContainsKey(sortedStr)) {
anagramMap[sortedStr] = new List<string>();
}
anagramMap[sortedStr].Add(str);
}
return anagramMap.Values.ToList();
}
static void Main()
{
string[] input = { "eat", "tea", "tan", "ate", "nat", "bat", "tae" };
List<List<string>> groupedAnagrams = GroupAnagramsMethod(input);
foreach (List<string> group in groupedAnagrams) {
Console.WriteLine(string.Join(", ", group));
}
}
}
/*
run:
eat, tea, ate, tae
tan, nat
bat
*/