我有一个按顺序排列的数组1,2,3,4,5我需要反转它,所以它将是5,4,3,2,1。 以下伪代码怎么样?这里不是一个更容易的方式 编辑:我很抱歉我认为是多维数组
someclass [,] temporaryArray=new someclass [ArrayLenght,ArrayLenght];
//for each dimension then
for(int I=0;I<ArrayLenghtOfDimension;I++)
{
temporaryArray[ArrayLenghtOfDimension-I]=Array[I];
}
Array=temporaryArray;
答案 0 :(得分:4)
数组基类有一个内置
的Reverse()扩展方法int[] originalArray = new int[] { 1, 2, 3, 4, 5 };
int[] reversedArray = originalArray.Reverse().ToArray();
请注意,Reverse方法返回IEnumerable,因此您需要在结果上调用ToArray()。
如果你需要迭代数组中的元素,那么你只需要
foreach (int element in originalArray.Reverse())
Console.WriteLine(element);
糟糕 - 反向是IEnumerable,而不是数组,所以你可以将它用于任何集合。
IEnumerable<int> IEnumerableInt = new List<int>() { 1, 2, 3 };
int[] reversedArray2 = IEnumerableInt.Reverse().ToArray();
答案 1 :(得分:2)
是的.net中存在快速解决方案
int[] values = new int[] { 1, 2, 3, 4, 5 };
Array.Reverse(values);
您的阵列已颠倒过来。所以你可以迭代它
foreach (int i in values)
{
Response.Write(i.ToString());
}
以上代码将显示 的 54321 强>
它也适用于string [],char []或其他类型的数组
答案 2 :(得分:2)
事件尽管Array
类定义了Reverse
个方法:
Array.Reverse(originalArray); // original array is now reversed
如果你需要做的就是向后迭代它,请执行以下操作:
for(int I= ArrayLength - 1; I >= 0; I--)
{
}
这样可以避免为反转阵列重新分配内存。
答案 3 :(得分:1)
Array.Reverse
是执行此操作的最佳方式。你关心元素的顺序吗?如果是这样,那么您可以执行以下操作。
int[] originalArray = new int[] { 10, 2, 13, 4, 5 };
int[] descOrderedArray = originalArray.OrderByDescending(i => i).ToArray();
int[] ascOrderedArray = originalArray.OrderBy(i => i).ToArray();
答案 4 :(得分:1)
对于多维数组,这是一个相同的想法
int[][] multiDimArray = new int[][] { new int[] { 1, 2, 3 }, new int[] { 4, 5, 6 } };
int[][] reversedMultiArray = multiDimArray.Reverse().ToArray();
生成一个包含两个数组的数组:{4,5,6},{1,2,3}