修改数组之间的对象顺序C#简单解决方案

Modyfing the objects sequence between arrays C# simple solution

我试图找到(使用下面列出的代码)一个简单的解决方案,用于将存储在第一个数组中的所有对象复制到第二个数组,同时更改第二个数组中对象的索引 + 1,所以第一个数组中的 object[0] 将等于第二个数组中的 object[1],而第一个数组中的最后一个 object[9] 将等于第二个数组中的 object[0]。

在尝试启动我编写的代码时,我收到消息,其中指出 "Destination array was not long enough Check destIndex and length, and the array's lower bounds",我只是从 c# 的数组部分开始,所以我将非常感激任何quidance.

    static void Main(string[] args)
    {
        int[] first = {10, 11, 12, 13, 14, 15, 16, 17, 18, 19};
        int[] second = new int[first.Length];

        Array.Copy(first, 0, second, 1, 10);
        foreach (int x in second)
        { 
            Console.WriteLine("{0}", x);
        }
        Console.ReadKey();
    }
}

您可以这样做,而不是 Array.Copyforeach

for (int i = 0; i < first.Length; i++)
    second[i == first.Length - 1 ? 0 : i + 1] = first[i];

它只是从 i = 0i = first.Length-1,将 first 中该索引处的元素复制到 second 中的该索引加 1。

如果想要将数组向前旋转一位,可以使用简单的 for:

static void Main(string[] args)
{
    int[] first = {10, 11, 12, 13, 14, 15, 16, 17, 18, 19};
    int[] second = new int[first.Length];

    for (int k = 0; k < first.Length; k++)
        second[(k == (first.Length - 1))? 0: k + 1] = first[k];

    foreach (int x in second)
    { 
        Console.WriteLine("{0}", x);
    }
    Console.ReadKey();
}