指数数组的边界之外。如何解决这个问题?

时间:2018-09-13 14:03:09

标签: c# .net

using System;
using System.IO;

namespace _2._1
{
class Program
{
    public struct nariai
    {
        public string vardas;
        public string pavarde;
        public double pinigai;
    };
    static void Main(string[] args)
    {
        StreamReader failas = new StreamReader("nariai.txt");
        string a = failas.ReadLine();
        int nariuKiekis = int.Parse(a);
        nariai[] narys = new nariai[nariuKiekis];
        string[] info = new string[nariuKiekis];
        for (int i = 0; i < nariuKiekis; i++)
        {
            info[i] = failas.ReadLine();
            string[] informacija = info[i].Split(' ');
            narys[i].vardas = informacija[i];
            narys[i].pavarde = informacija[i + 1];
            narys[i].pinigai = double.Parse(informacija[i + 2]);
            Console.WriteLine("{0} {1} {2}", narys[0].vardas, narys[0].pavarde, narys[0].pinigai);
        }
    }
}
}

我的文件看起来像这样。 file

我在控制台中收到此错误。 console

为什么不显示“ Almeda Norkute 25.70”?

1 个答案:

答案 0 :(得分:0)

分别代替notifyacija [i],informacija [i + 1]和notifyacija [i + 2],分别使用notifyacija [0],informacija [1]和notifyacija [2]。

还要在console.writeline语句中使用索引 i

for (int i = 0; i < nariuKiekis; i++)
            {
                info[i] = failas.ReadLine();
                string[] informacija = info[i].Split(' ');
                narys[i].vardas = informacija[0];
                narys[i].pavarde = informacija[1];
                narys[i].pinigai = double.Parse(informacija[2]);
                Console.WriteLine("{0} {1} {2}", narys[i].vardas, narys[i].pavarde, narys[i].pinigai);
            }