I'm trying to use yield to return string on each iteration, but instead of a string, my res has type {Namespace.Class.<getMutations>d__10}. I get all the results I want, but they are returned all at once and not one by one. What am I doing wrong?
public static IEnumerable<string> generate(string mask)
{
     foreach (List<string> pattern in list)
     {
         var res = getMutations(pattern);
         yield return "result:  " + res;
     }
}
private static IEnumerable<string> getMutations(List<string> pattern)
{
    IEnumerable<string> mutations = null;
    switch (pattern.Count)
    {               
        case 4:
            mutations =
            from m0 in pattern[0]
            from m1 in pattern[1]
            from m2 in pattern[2]
            from m3 in pattern[3]
            select "" + m0 + m1 + m2 + m3;
            break;
        case 5:
            mutations =
            from m0 in pattern[0]
            from m1 in pattern[1]
            from m2 in pattern[2]
            from m3 in pattern[3]
            from m4 in pattern[4]
            select "" + m0 + m1 + m2 + m3 + m4;
            break;
    }
    foreach (var mutation in mutations)
        yield return mutation;
}
 
     
     
    