Возможно, у вас уже есть ответ, и я просто ищу неправильные термины. Прошу прощения, если это так, и попросите, чтобы вы указали мне на существующий ответ, если там действительно есть.C# получить возможные комбинации DISTINCT из списка
Мне нужно, чтобы иметь возможность принимать список и производить все возможные отдельные комбинации из этого списка. Я имею в виду, что разные комбинации не должны отображаться в разных порядках.
Пример: Скажем, у меня есть список со значениями «Один», «Два» и «Три», тогда я хотел бы, чтобы результат был = «Один», «Два», «Три», «Один» «Два тройки», «Одна тройка»
У меня нет интереса к «пустой» комбинации, и я не хочу возвращать ту же комбинацию в несколько порядков. Большая часть кода, который я нашел и пыталась сделать для меня, имеет главный недостаток, что он вернет ВСЕ возможности, которые включают «Два три» и «Три два», что в моем случае неверно.
Кода я в настоящее время работаю, чтобы адаптироваться из другого SO вопроса (All Possible Combinations of a list of Values) и выглядит следующим образом:
public void GetCombination(System.Collections.Generic.List<string> list)
{
Combinations = new List<string>();
double count = System.Math.Pow(2, list.Count);
for (int i = 1; i <= count - 1; i++)
{
string str = Convert.ToString(i, 2).PadLeft(list.Count, '0');
for (int j = 0; j < str.Length; j++)
{
if (str[j] == '1')
{
Combinations.Add(list[j]);
}
}
///Combinations = found;
}
}
К сожалению, я новичок, когда речь идет о C# и я честно только используя его, потому что сотрудник сказал, что он, вероятно, будет намного быстрее, чем мой текущий сценарий powershell, который выполняет то, что я ищу ... Но для этого требуется очень много времени.
Заранее благодарим за консультацию!
Вы никогда не задавали вопрос, какова проблема, которую вы имеете. –
Текущий код не возвращает правильный результат ... Вопрос будет, как можно было бы найти отдельные комбо с использованием C#? – Ethan