【问题标题】:ERROR : make sure that the maximum index on a list is less than the list size错误:确保列表上的最大索引小于列表大小
【发布时间】:2014-07-25 05:08:22
【问题描述】:

这是我的代码

    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。 这些文件包含逗号分隔值。 但我的代码给出了以下错误。

另外请告诉我我使用的方法是正确还是不读取这种类型的数据。

【问题讨论】:

  • 你有一个 name[4] 在那里,但你的数组只有 3 个元素。也许你想改写name[i]
  • 函数conairdata的代码不完整。你能编辑你的问题吗?

标签: c# visual-studio-2010


【解决方案1】:

您的姓名数组大小为 3:

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

当您在哪里访问第五个元素时:

conairdata(to_date, name[4]);

这就是导致代码的问题。关于您的第二个问题,这是否是正确的方法。我不确定您的功能conairdata 不完整。

【讨论】:

    【解决方案2】:

    更换你的conairdata(to_date, name[4]);

    conairdata(to_date, name[3]);

    因为数组从索引0开始

    【讨论】:

      猜你喜欢
      • 2013-10-23
      • 2021-07-16
      • 1970-01-01
      • 2013-05-27
      • 2011-11-20
      • 2017-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多