C# 将一维数组转换为向量数组

C# 将一维数组转换为向量数组,c#,arrays,vector,coordinates,points,C#,Arrays,Vector,Coordinates,Points,我有一个双数组中的48个元素,其中包含16个点的XYZ坐标,我需要将这个数组中的每个点提取为向量3(x,y,z) 尝试在数组上循环,但不知何故,我的循环到达数组索引的边界,如下所示 { myVector = new Vector(myArray[i], myArray[i++], myArray[i+2]); Console.WriteLine(myVector); } { myVector=新向量(myArray[i],myArray[i++],myA

我有一个双数组中的48个元素,其中包含16个点的XYZ坐标,我需要将这个数组中的每个点提取为向量3(x,y,z) 尝试在数组上循环,但不知何故,我的循环到达数组索引的边界,如下所示

{ myVector = new Vector(myArray[i], myArray[i++], myArray[i+2]); Console.WriteLine(myVector); } { myVector=新向量(myArray[i],myArray[i++],myArray[i+2]); Console.WriteLine(myVector); }
有什么想法吗?

解决方案很简单:

 {
    myVector = new Vector(myArray[i], myArray[i+1], myArray[i+2]);
    Console.WriteLine(myVector);
 }
说明:


i++
通过向其添加
1
来更改
i
值,
i+1
不会更改值。

您想要
i+1
而不是
i++
。后者改变了
i
的值,因此
i+2
实际上是
+3
。另外,
i++
是后期增量,因此您确实得到了
i
作为索引,而不是您期望的
i+1
。您认为您需要在这里使用
i++
?您可能打算编写
i+1
。如果不是打字错误,那么您可能想重新了解
++i
vs
i++
vs
i+1
的含义。已经这样做了,但仍然得到System.IndexOutOfRangeException:“索引超出了数组的边界”。@marco Salemoconsign如果您正在循环for语句,请考虑您的代码,您的最大值应该是长度-3