У меня есть набор данных в list
например
из этого мне нужны все возможные комбинации инапример,
js James
sj James
Смит Джеймс
j james
sj
размер списка не задан и основан на данных, введенных пользователем
Я рассмотрел несколько решений здесь и приблизился к получению того, что мне нужно, например, я получаю возврат
js james
sj Джеймс
Смит Джеймс Джеймс
но я никогда не получу результат, который начинается с Джеймса
некоторые решения, представленные в следующих ссылках Список всех перестановок строки / целого числа Создание набора степеней последовательности Все возможные комбинации из списка значений
public static IList<IList<T>> PowerSet<T>(IList<T> list)
{
int n = 1 << list.Count;
IList<IList<T>> powerset = new List<IList<T>>();
for (int i = 0; i < n; ++i)
{
IList<T> set = new List<T>();
for (int bits = i, j = 0; bits != 0; bits >>= 1, ++j)
{
if ((bits & 1) != 0)
set.Add(list[j]);
}
powerset.Add(set);
}
return powerset;
}
Бросив list
в приведенном выше коде, я получаю ближайшее значение, но не возвращает все возможные комбинации
Я получил этот код отсюда, но я буду проклят, если смогу найти оригинальную публикацию, вся благодарность оригинальному постеру, а не мне за вышеуказанный код