C# 将整个数组移动 1

标签 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;
    }

最佳答案

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

下面的代码将完成这个:

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

关于C# 将整个数组移动 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43374955/

相关文章:

c# - 在 RGB 和 HSB 颜色值之间切换的算法

c# - FlexLayout 可绑定(bind)源 -xamarin 表单 - 如何在不绑定(bind)的情况下获取数据

c# - Xamarin 圆形图像按钮

c# - 通过 OOP 继承,我如何在 'child' 类中保持较低的参数量

c# - 使用枚举绑定(bind)组合框选定值

c# - 带有 ASP.NET 按钮回发的 jQuery UI 对话框

c# - 从外部域 (AWS S3) 加载图像并将其存储在浏览器内存中

c# - 如何在 WPF 中围绕文本 block 的背景矩形定义描边?

c# - C# 编译器/优化命令行选项会影响 JITter 吗?

c# - HttpWebRequest 未传递凭据