不断得到异常,值没有被输入到数组中

本文关键字:输入 数组 异常 | 更新日期: 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,并且您得到对象引用不设置异常