C#中,旋转的二维数组 [英] C#, rotating 2D arrays
本文介绍了C#中,旋转的二维数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我看着在旋转二维数组其他职位,但它不是很我想要的。
我想是这样的。
I've looked at other post on rotating 2D arrays, but it's not quite what I want. I want something like this
int[,] original= new int[4,2]
{
{1,2},
{5,6},
{9,10},
{13,14}
};
我想打开它这个样子,
rotatedArray = {{1,5,9,13},{2,6,10,14}};
我想通过做一些列分析,按行反对。
I want to turn it like this, rotatedArray = { {1,5,9,13}, {2,6,10,14}}; I want to do some analysis by column, as opposed to by rows.
这工作,但有一个更简单的方法??
This works, but is there an easier way??
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#中的列进行迭代?结果
乙
Is there an easy way to iterate through columns in c#?
B
推荐答案
如果你改变你的阵列是一个数组的数组变得越来越容易。我发现这个,如果你将它更改为int [] []:
If you change your array to be an array of arrays it gets easier. I found this if you change it to an 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;
}
这篇关于C#中,旋转的二维数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文