private static IEnumerable<KeyValuePair<string, int>> IterateNodesString(string commonPrefix, DawgNode node)
{
if (node == null) yield break;
foreach (var node2 in node.ChildNodes)
{
var nextCommonPrefix = commonPrefix + node2.Char;
if (node2.Eow)
{
yield return new KeyValuePair<string, int>(nextCommonPrefix, node2.Frequency);
}
foreach(var matchWord in IterateNodesString(nextCommonPrefix,node2))
{
yield return matchWord;
}
}
}