发生了'System.IndexOutOfRangeException'类型的未处理异常

时间:2013-09-30 16:13:47

标签: c#

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

namespace ovning_grunder5._1
{
    class Program
    {
        static void Main(string[] args)
        {
            string input;
            int[] tal1;
            int i = 0;
            int count = 0;
            int large = 0;
            Console.WriteLine("Mata in tal och avsluta med 0");
            input = Console.ReadLine();
            while (input != "0")
            {
                tal1[i] = Convert.ToInt32(input); //Error Occurres here after the second input is given.
                input = Console.ReadLine();
                i++;
                Console.WriteLine(tal1[i]);
            }
            while (tal1[count] <= i)
            {
                if (tal1[count] < large)
                {                        
                    large = tal1[count];
                }
                count++;
            }
        }
    }
}

当我运行程序时,我在程序中添加输入中断并提供错误"An unhandled exception of type 'System.IndexOutOfRangeException' occurred."有没有人知道如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

如果你知道你需要的数组大小,那么先用下面的大小初始化

int[] tal1 = new int[10];

否则您可以使用List<int>

List<int> tal1 = new List<int>();
while (input != "0")
{
  tal1.Add(Convert.ToInt32(input));
  input = Console.ReadLine();
}
large = tal1.Max();

答案 1 :(得分:0)

您将tal1声明为数组,但您永远不会初始化它。我建议在这里使用通用列表而不是数组:

var tal1 = new System.Collections.Generic.List<int>();