不断得到异常,值没有被输入到数组中
本文关键字:输入 数组 异常 | 更新日期: 2023-09-27 18:07:19
这是我的代码。我试图从一个以逗号分隔的文件中读取数据文件中的名称是"Doe,John"
所以我使用这个来获取名称,而不用逗号....
fileIn = new TextFieldParser(INPUT_FILE_NAME);
fileIn.TextFieldType = FieldType.Delimited;
fileIn.SetDelimiters(",");
fileIn.HasFieldsEnclosedInQuotes = true;
这是我的一些源代码。名称未写入nameArray[i] = words[1];
static void InputEmployeeData()
{
int i;
string[] words;
numOfEmployee = Int32.Parse(fileIn.ReadLine());
idArray = new int[numOfEmployee];
nameArray = new string[numOfEmployee];
deptArray = new int[numOfEmployee];
payrateArray = new double[numOfEmployee];
hoursArray = new double[numOfEmployee];
for (i = 0; i <= numOfEmployee; i++)
{
words = fileIn.ReadFields();
idArray[i] = Int32.Parse(words[0]);
nameArray[i] = words[1];
deptArray[i] = Int32.Parse(words[2]);
payrateArray[i] = Double.Parse(words[3]);
hoursArray[i] = Double.Parse(words[4]);
}
}
我正在读取的数据文件中的一个示例行是这样的。
0090,"Baker, John",1,32.57,50.75
我有numOfEmployee = readline
,因为在文件的顶部有元数据,让我知道文件中有多少人。在第86行....
idArray[i] = int.Parse(words[0]);
你需要改变这一行
for (i = 0; i <= numOfEmployee; i++)
for (i = 0; i < numOfEmployee; i++)
for循环循环多次,因为它从0开始,所以应该在numOfEmployee - 1
处停止。如果按原样执行循环,在最后一个循环中,words
数组被TextFieldParser.ReadFields
设置为null,并且您得到对象引用不设置异常