这是我的代码..我试图从带有逗号分隔数据的文件读入,并且名称在文件中为"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]);
答案 0 :(得分:2)
您需要更改此行
for (i = 0; i <= numOfEmployee; i++)
到
for (i = 0; i < numOfEmployee; i++)
for循环循环多次,因为它从零开始,所以你应该停在numOfEmployee - 1
。如果按原样执行循环,则在最后一个循环中words
数组被TextFieldParser.ReadFields
设置为null,并且您将获得对象引用未设置异常