我的代码有问题。我试过搜索它,但它只是让我更加困惑。
我想将大小为6的数组(简称为Array
)分成两半。其中一半将移动到另一个数组,称为Split1
但是当尝试使用for循环移动数字时,它会给我一个错误。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication4
{
class Program
{
static void Main(string[] args)
{
int[,,,,,] Array = new int[7, 5, 9, 4, 2, 1];
int[] Split1 = new int[3];
for (int i = 0; i <= Array.Length / 2; i++)
{
Split1[i] = Array[i]; //This is where i get my error
}
}
}
}
如果你能指出我正确的方向,我将不胜感激
答案 0 :(得分:3)
int[] Array = new int[6]{7, 5, 9, 4, 2, 1};
您之前所做的是尝试创建具有6个维度的数组并对其中一个单元格进行寻址。
正如其他人所指出的那样,在循环中你想要从0到2进行计数,因此改变<=
的{{1}}。
答案 1 :(得分:3)
此
for (int i = 0; i < Array.Length / 2; i++)
{
Split1[i] = Array[i]; //This is where i get my error
}
不是一个包含6个元素的数组,这是一个6维数组。
您应该像这样定义一维数组:
int[,,,,,] Array = new int[7, 5, 9, 4, 2, 1];
此外,您的循环条件不正确,您应使用int[] Array = new int[] {7, 5, 9, 4, 2, 1};
检查上限而不是<
:
<=
答案 2 :(得分:1)
你的循环索引错误
PickReuest
答案 3 :(得分:1)
声明Array的方式不正确,请参阅以下代码。
int[] Array = new int[] {7, 5, 9, 4, 2, 1}; // initialization will set the size automatically
int[] Split1 = new int[3];
for (int i = 0; i < 3; i++)
{
Split1[i] = Array[i];
}
答案 4 :(得分:1)
1。)您可以在many ways中初始化1D数组:
string[] array = new string[2]; // creates array of length 2, default values
string[] array = new string[] { "A", "B" }; // creates populated array of length 2
string[] array = { "A" , "B" }; // creates populated array of length 2
在你的情况下:
int[] Array = new int[] {7, 5, 9, 4, 2, 1};
2。)Array.Length
不会返回数组内的元素数量。您需要Array.Count()
。有关详细信息,请参阅此link。
for (int i = 0; i <= Array.Count() / 2; i++)
{
Split1[i] = Array[i]; //This is where i get my error
}