Перестановка столбцов/строк в матрице по ключу C#
Возникли трудности во время перестановок столбцов/строк в матрице по ключу. Данные в матрицу заносятся с клавиатуры. Ключ задается списком. Код перестановки есть, но он немного неверно сортирует. Если ввести ключ {0, 1, 2, 3, 4, 5, 6, 7}, то выводится сначала 7-й столбец, а потом с 0 по 6.
string[,] ct1 = new string[6, 8];
List<int> columnsCypherKey = new List<int>() { 0, 1, 2, 3, 4, 5, 6, 7 };
public void ColumnsPermutation() //Перестановка столбцов
{
foreach (int t in columnsCypherKey)
{
for (int i = 0; i < ct1.GetLength(0); i++)
{
string tmp = ct1[i, 0];
ct1[i, 0] = ct1[i, t];
ct1[i, t] = tmp;
}
}
}