using System.Collections.Generic;
public static void Main()
var words = new List<string> { "yo", "act", "flop", "tac", "foo", "cat", "oy", "olfp" };
private static List<List<string>> DoGroupAnagrams(List<string> words)
var output = new List<List<string>>();
var resultMap = new Dictionary<string, List<string>>();
foreach(var item in words)
var charValue = item.ToCharArray();
var sortedString = new string(charValue);
if(!resultMap.ContainsKey(sortedString))
var lst = new List<string>();
resultMap.Add(sortedString, lst);
resultMap[sortedString].Add(item);
foreach(var item in resultMap)
var itm = new List<string>();
foreach(var i in item.Value)