C# все комбинации
Primary tabs
Forums:
Имеется вот такой вот классный пример получения всех комбинаций с повторами да ещё заданной длинны
(при использовании уберите пробелы между угловыми скобками и остальным текстом)
static IEnumerable< IEnumerable< T > > GetAllCombinations< T >(IEnumerable< T > list, int length)
{
if (length == 1) return list.Select(t => new T[] { t });
return GetAllCombinations(list, length - 1)
.SelectMany(t => list, (t1, t2) => t1.Concat(new T[] { t2 }));
}
Использовать данный код можно например так:
Console.WriteLine(
string.Join(", ",
GetAllCombinations("abcde".ToCharArray(), 2).Select(list => string.Join("", list)) // извлечение чтобы напечатать
)
);Автор кода: stackoverflow.com/users/1251423/pengyang
- Log in to post comments
- 5852 reads