Спасибо за ваш вклад. Правильное количество результатов, но порядок не соответствует постановке задачи. Совсем другое дело, особенно когда вы начинаете добавлять более трех пунктов в «выбор».

вопрос практически такой же, какэтот ТАК пост, только я ищу решение VB.NET (.NET 4). Я крутил свои колеса достаточно долго, пытаясь найти общее решение для решения этой проблемы с «набором мощности».

Дано:

Dim choices As IEnumerable(Of String) = {"Coffee", "Tea", "Milk", "Cookies"}
Dim choiceSets = choices.CombineAll()

я ищуchoiceSets бытьIEnumerable(Of IEnumerable(Of T)) так что я могу сделать что-то вроде:

For each choiceSet in choiceSets
    Console.WriteLine(String.Join(", ", choiceSet))
Next

И получите результаты, которые выглядят так:

Coffee
Tea
Milk
Cookies
Coffee, Tea
Coffee, Milk
Coffee, Cookies
Tea, Milk
Tea, Cookies
Milk, Cookies
Coffee, Tea, Milk
Coffee, Tea, Cookies
Coffee, Milk, Cookies
Tea, Milk, Cookies
Coffee, Tea, Milk, Cookies

Как видите, это каждыйнеповторяющихся комбинация из источникаIEnumerable(Of T) (в нем может быть от 1 до многих элементов - в этом примере только 4), он работает на основе порядка элементов в источникеIEnumerable(Of T)и каждый элемент в списке> = предыдущий элемент с точки зрения количества элементов во внутреннейIEnumerable(Of T).

Для чего это стоит, это не домашняя работа; хотя это действительно так.

РЕДАКТИРОВАТЬ: Обновил пример, чтобы он не выглядел так, как будто результат отсортирован по алфавиту, чтобы подчеркнуть, что источникIEnumerable(Of T)Используется существующий порядок и добавлен 4-й выбор, чтобы уточнить требования к сортировке в каждом наборе.

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

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