我试图找到(使用下面列出的代码)一个简单的解决方案,用于将存储在第一个数组中的所有对象复制到第二个数组,同时更改第二个数组中对象的索引+ 1,因此该对象第一个数组中的[0]等于第二个数组中的对象[1],第一个数据中的最后一个对象[9]等于第二个中的对象[0]。
在尝试启动我编写的代码时,我收到了消息,其中声明“目标数组不够长检查destIndex和长度,以及数组的下限”,我只是从数组部分开始c#,所以我非常感谢任何指导。
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();
}
}
答案 0 :(得分:0)
您可以执行此操作,而不是Array.Copy
和foreach
:
for (int i = 0; i < first.Length; i++)
second[i == first.Length - 1 ? 0 : i + 1] = first[i];
它只是从i = 0
转到i = first.Length-1
,将first
中该索引处的元素复制到second
中的该索引加1。
答案 1 :(得分:-1)
如果想要将阵列向前旋转一个位置,可以使用简单的:
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();
}