C# 在c语言中,如何将数组的所有元素从左侧移到右侧#

C# 在c语言中,如何将数组的所有元素从左侧移到右侧#,c#,arrays,sorting,C#,Arrays,Sorting,我试图将数组的元素从最左边一直交换到最右边 所以数组看起来像这样:1234567 我希望输出是这样的:7654321 我已经试过了,但它所做的只是将左侧的最后一个数字移动到右侧,而没有其他数字 static int[] ShiftArray(int[] array) { int[] temp = new int[array.Length]; for (int index = 0; index < array.Length; index++)

我试图将数组的元素从最左边一直交换到最右边

所以数组看起来像这样:1234567

我希望输出是这样的:7654321

我已经试过了,但它所做的只是将左侧的最后一个数字移动到右侧,而没有其他数字

    static int[] ShiftArray(int[] array)
    {
        int[] temp = new int[array.Length];
        for (int index = 0; index < array.Length; index++)
        {
            temp[(index + 1) % temp.Length] = array[index];
        }

        return temp;
    }
静态int[]移位数组(int[]数组)
{
int[]temp=newint[array.Length];
for(int index=0;index

谢谢你的建议

您可以使用
System.Linq
中的
反向
方法

return array.ToList().Reverse().ToArray();

为什么不按降序遍历数组呢

for(int i = array.length - 1; i >= 0; i--)
{
    // do something
}

如果要更改数组本身的顺序(而不创建新数组),可以使用以下命令:

Array.Reverse(array);
using System;

public class Program
{
    public static void Main()
    {
        int[] array = new int[]{1, 2, 3, 4, 5, 6, 7};
        int start = 0;
        int end = array.Length - 1;
        while (start < end)
        {
            int temp = array[start];
            array[start] = array[end];
            array[end] = temp;
            start++;
            end--;
        }

        Console.WriteLine("Result: {0}", String.Join("", array));
    }
} 

如果不想使用任何预构建的.NET函数,可以尝试以下操作:

Array.Reverse(array);
using System;

public class Program
{
    public static void Main()
    {
        int[] array = new int[]{1, 2, 3, 4, 5, 6, 7};
        int start = 0;
        int end = array.Length - 1;
        while (start < end)
        {
            int temp = array[start];
            array[start] = array[end];
            array[end] = temp;
            start++;
            end--;
        }

        Console.WriteLine("Result: {0}", String.Join("", array));
    }
} 
演示


我将其描述为反转数组,而不是移动数组(移动是一种完全不同的操作)。提示:如果要反转方向,则意味着必须从左读取,然后向右写入,或者从右读取表单,然后向左写入。所以你需要从右向左移动一个指针,也就是说,每一步减去一。temp.Length-1-index…不需要调用
ToList()