错误:确保列表中的最大索引小于列表大小

时间:2014-07-25 05:08:22

标签: c# visual-studio-2010

这是我的代码

    private void button1_Click(object sender, EventArgs e)
    {
        string to_date = dateTimePicker2.Value.ToString("yyyy/MM/dd");
        Console.WriteLine("a");
       string[] name = new string[3] {"015", "017", "005"};

        for (int i = 0; i < name.Length; i++)
          {
               Console.WriteLine("The name is  "+ name[i]);
                 conairdata(to_date, name[4]);
          }

            label9.Text = " Now processing... Please wait";
            label9.Refresh();
            Console.WriteLine("d");
    }

    public void conairdata(string to_date , string name)
    {
        Console.WriteLine("e");
        string path = "H:\\St\\Con\\TB\\mdata"+name+".rpt";
        // nofcol and nofrows of our tile array
        int nofcol = 0;
        int nofrows = File.ReadLines(path).Count();
        StreamReader sReader = new StreamReader(path);
        string line = sReader.ReadLine();
        string[] tileNo = line.Split(',');
        nofcol = tileNo.Count();

我正在尝试从'H:\'驱动器中的位置读取文件。

文件名是mdata017,mdata015,mdata005。 这些文件包含逗号分隔值。 但我的代码给出了以下错误。

另请告诉我,我使用的方法是否正确,以便阅读此类数据。

2 个答案:

答案 0 :(得分:2)

您的姓名数组大小为3:

string[] name = new string[3] {"015", "017", "005"};

您在以下位置访问第五个元素:

conairdata(to_date, name[4]);

导致代码问题。关于你的第二个问题,这是否正确。我不确定你的函数conairdata是不完整的。

答案 1 :(得分:1)

更改您的conairdata(to_date, name[4]);

conairdata(to_date, name[3]);

因为数组从0的索引开始