修改数组之间的对象顺序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.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。
如果想要将数组向前旋转一位,可以使用简单的 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();
}
我试图找到(使用下面列出的代码)一个简单的解决方案,用于将存储在第一个数组中的所有对象复制到第二个数组,同时更改第二个数组中对象的索引 + 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.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。
如果想要将数组向前旋转一位,可以使用简单的 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();
}