Перестановки коллекций строк в C #

Похоже, я снова застрял с рекурсивными алгоритмами ...

Мое приложение должно сортировать файлы по разным папкам в соответствии с информацией, указанной пользователем, и в соответствии со структурой подпапок, представленной строкой, подобной следующей:

[ROOT] \ brand \ color \ material \ 

Теги в строке структуры представляют коллекции:

Предполагать:

var brand = new List<string> { "Nike", "Adidas", "Reebok" };
var color = new List<string> { "red", "blue", "yellow", "black" };
var material = new List<string> { "leather", "fabric" };

var data = new List<List<string>>() { brand, color, material };

И я пытаюсь получить что-то вроде:

[ROOT]\Nike\red\leather
[ROOT]\Nike\red\fabric
[ROOT]\Nike\blue\leather
[ROOT]\Nike\blue\fabric
[ROOT]\Nike\yellow\leather
[ROOT]\Nike\yellow\fabric
[ROOT]\Nike\black\leather
[ROOT]\Nike\black\fabric
[ROOT]\Adidas\red\leather
[ROOT]\Adidas\red\fabric
[ROOT]\Adidas\blue\leather
[ROOT]\Adidas\blue\fabric
[ROOT]\Adidas\yellow\leather
[ROOT]\Adidas\yellow\fabric
[ROOT]\Adidas\black\leather
[ROOT]\Adidas\black\fabric
[ROOT]\Reebok\red\leather
[ROOT]\Reebok\red\fabric
[ROOT]\Reebok\blue\leather
[ROOT]\Reebok\blue\fabric
[ROOT]\Reebok\yellow\leather
[ROOT]\Reebok\yellow\fabric
[ROOT]\Reebok\black\leather
[ROOT]\Reebok\black\fabric

Проблема заключается в том, что количество тегов данных (марка, цвет, материал) и их порядок заранее неизвестны, поэтому возникает необходимость в рекурсии.

Любая идея?

Огромное спасибо заранее!

Ответы на вопрос(1)

Ваш ответ на вопрос