C#将整个数组移1

时间:2017-04-12 16:28:18

标签: c#

我想把整个数组换一个。示例:如果数组从[0]变为[19],我希望它从[1]到[20],[0]消失。

目前的方法(这是错误的):

   shiftRight(operationsList.ToArray()));


    public Operation3D[] shiftRight(Operation3D[] arr)
    {
        Operation3D[] demo = new Operation3D[arr.Length];

        for (int i = 1; i < arr.Length; i++)
        {
            demo[i] = arr[i - 1];
        }

        demo[0] = arr[demo.Length - 1];

        return demo;
    }

1 个答案:

答案 0 :(得分:5)

由于调整大小,将元素向右移动将需要一个新数组。无法使索引0消失。它必须存在,但它可以是null

以下代码将实现此目的:

public Operation3D[] shiftRight(Operation3D[] arr)
{
    Operation3D[] result = new Operation3D[arr.Length + 1];
    Array.Copy(arr, 0, result, 1, arr.Length);
    return result;
}