=====n boucles imbriquées===== Ici, ''dataLoop'' contient pour chaque boucle la lettre, l'itération en cours (base 0) et le nombre d'itérations à réaliser. public class DataLoop { public char Lettre { get; set; } public int N { get; set; } public int NEnCours { get; set; } public DataLoop(char lettre, int n, int nEnCours) { this.Lettre = lettre; this.N = n; this.NEnCours = nEnCours; } } private void nestedLoopOperation(IList dataLoop, int level) { if (level == dataLoop.Count) { // Opération à exécuter i*j*k*l*... fois } else { for (dataLoop[level].NEnCours = 0; dataLoop[level].NEnCours < dataLoop[level].N; dataLoop[level].NEnCours++) nestedLoopOperation(dataLoop, level + 1); } } nestedLoopOperation(dataLoop, 0);