从文本文件读取错误

亚历克斯

这是我的代码,它从一个文本文件中读取并将其放入表单上的列表框中。如果文本文件中已有内容,则可以使用。但是,如果我删除文本文件中的内容并运行程序,它将崩溃,并显示错误“索引超出数组范围”。

assignment.Request.Name = columns[1];,我不确定为什么/如何解决它。

public static List<Assignment> GetAssignment()
    {
        if (!Directory.Exists(dir))
            Directory.CreateDirectory(dir);


        StreamReader textIn =
            new StreamReader(
                new FileStream(path3, FileMode.OpenOrCreate, FileAccess.Read));

        List<Assignment> assignments = new List<Assignment>();

        while (textIn.Peek() != -1)
        {
            string row = textIn.ReadLine();
            string[] columns = row.Split('|');
            Assignment assignment = new Assignment();

            assignment.Employee.Name = columns[0];
            assignment.Request.Name = columns[1];
            assignments.Add(assignment);
        }

        textIn.Close();

        return assignments;
    }
肖恩·考克斯(Sean Cox)

您需要确保列数组中至少有2个项目,否则它将尝试访问不存在的数组项目:

 while (textIn.Peek() != -1)
        {
            string row = textIn.ReadLine();
            string[] columns = row.Split('|');
            if(columns.length>=2)
            {
            Assignment assignment = new Assignment();

            assignment.Employee.Name = columns[0];
            assignment.Request.Name = columns[1];
            assignments.Add(assignment);
           }
        }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章