Exemple #1
0
 public IEnumerator <IEnumerable <T> > GetEnumerator()
 {
     if (_startLevel + 1 == _setOfValues.Length)
     {
         yield return(Enumerable.Repeat(_setOfValues.ElementAt(_startLevel), 1));
     }
     else
     {
         PermutationGenerator <T> permutations = new PermutationGenerator <T>(_setOfValues, _startLevel + 1);
         foreach (var permutation in permutations.ToList())
         {
             foreach (var newPermutation in Mix(_setOfValues[_startLevel], permutation).ToList())
             {
                 yield return(newPermutation);
             }
         }
     }
 }