[]内的索引数量错误;预计6

时间:2016-06-18 07:34:39

标签: c# arrays

我的代码有问题。我试过搜索它,但它只是让我更加困惑。

我想将大小为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
            }

        }
    }
}

如果你能指出我正确的方向,我将不胜感激

5 个答案:

答案 0 :(得分:3)

Initialize your array

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
        }