获取索引超出了数组的范围

时间:2017-02-15 10:11:56

标签: c# arrays bounds out

有人可以解释为什么我这样出界? 这是代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace testing
{
    class Program
    {
        static void Main(string[] args)
        {
            var n = int.Parse(Console.ReadLine());
            double[] numbers = new double[] { };
            for(int i = 0; i < n; i++)
            {
                var input = double.Parse(Console.ReadLine());
                numbers[i] = input;
            }
            Console.WriteLine(numbers);
        }
    }
}

2 个答案:

答案 0 :(得分:0)

初始化时,数组的长度是固定的。你的大小为0。

double[] numbers = new double[] { };  // { } is the same as 'initialize with 0 elements or no content'

您需要使用List而不是Array。

List<double> numbers = new List<double>();

for(int i = 0; i < n; i++)
{
   var input = double.Parse(Console.ReadLine());
   numbers.Add(input);
}

答案 1 :(得分:0)

您尚未设置数组大小

double[] numbers = new double[n]