0
这是我的代码,它从文本文件中读取并将其放置在窗体上的列表框中。如果文本文件中已经有东西可以使用。但是,如果我删除了文本文件中的内容并运行程序,它会崩溃并给我提供错误“索引超出了数组范围”。从文本文件中读取错误
在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;
}
这是行不通的。如果列长度为1,那么您仍然会尝试访问不在数组范围内的列[1]。 –
检查colomn长度大于2 – Hiba
我想也把它创造条件内的分配实例行。如果从未使用过,则创建该对象会浪费内存。这将是大于或等于2,不大于2。 –