Как кодировать динамические уровни цикла for?

Моя проблема такова:

У меня есть несколько списков, которые нужно переставить, но номера списков неизвестны. И номера всех элементов в каждом списке также непознаваемы. Sicne Я хотел бы пройти всю комбинацию элементов списка, например 1) выбрать A из списка 1, A из списка 2, A из списка 3; 2) ick A из списка 1, A из списка 2, B из списка 3... для ВСЕХ перестановок.

Я использую вложенный цикл for для обхода, например, если у меня есть два списка, тогда:

        for (int i = 0; i < list[0].EnergyParameters.ListEnergyLevelCandidates.Count; i++)
        {
            for (int j = 0; j < list[1].EnergyParameters.ListEnergyLevelCandidates.Count; j++)
            {
                // Do sth
            }
        }

Если у меня есть три списка, то:

        for (int i = 0; i < list[0].EnergyParameters.ListEnergyLevelCandidates.Count; i++)
        {
            for (int j = 0; j < list[1].EnergyParameters.ListEnergyLevelCandidates.Count; j++)
            {
                for (int k = 0; k < list[2].EnergyParameters.ListEnergyLevelCandidates.Count; k++)
                {
                    // Do sth
                }
            }
        }

Поскольку номера списка неизвестны, поэтому номера вложений неизвестны, что значит, я не знаю, сколько уровней цикла for нужно написать.

Как в таких обстоятельствах написать код для динамических уровней цикла for? Я не хочу писать 10 циклов для 10 списков.

6
задан dasblinkenlight 21 May 2012 в 22:27
поделиться