Я посмотрел на другое сообщение при вращении 2D массивов, но это не совсем, что я хочу. Я хочу что-то вроде этого
int[,] original= new int[4,2]
{
{1,2},
{5,6},
{9,10},
{13,14}
};
Я хочу повернуть его как это, rotatedArray = {{1,5,9,13}, {2,6,10,14}}; я хочу сделать некоторый анализ столбцом, в противоположность строками.
Это работает, но является там более легким путем??
private static int[,] RotateArray(int[,] myArray)
{
int org_rows = myArray.GetLength(0);
int org_cols = myArray.GetLength(1);
int[,] myRotate = new int[org_cols, org_rows];
for (int i = 0; i < org_rows; i++)
{
for(int j = 0; j < org_cols; j++)
{
myRotate[j, i] = myArray[i, j];
}
}
return myRotate;
}
Существует ли простой способ выполнить итерации через столбцы в c#?
B
Если вы измените свой массив на массив массивов, это станет проще. Я нашел это, если вы измените его на int [] []:
int[][] original = new[]
{
new int[] {1, 2},
new int[] {5, 6},
new int[] {9, 10},
new int[] {13, 14}
};
и метод поворота:
private static int[][] Rotate(int[][] input)
{
int length = input[0].Length;
int[][] retVal = new int[length][];
for(int x = 0; x < length; x++)
{
retVal[x] = input.Select(p => p[x]).ToArray();
}
return retVal;
}