Просто еще одно решение:
public IList<string> ListTables()
{
List<string> tables = new List<string>();
DataTable dt = _connection.GetSchema("Tables");
foreach (DataRow row in dt.Rows)
{
string tablename = (string)row[2];
tables.Add(tablename);
}
return tables;
}
Вот код для получения всех перестановок:
http://php.net/manual/en/function.shuffle.php#90615
С кодом для получения мощности набор, перестановки - это те, которые имеют максимальную длину, набор мощности должен быть всеми комбинациями. Я понятия не имею, что такое диспозиции, так что если вы сможете их объяснить, это поможет.