正在向列表字符串中添加项,但获取null引用异常

本文关键字:获取 null 异常 引用 添加 列表 字符串 | 更新日期: 2023-09-27 18:29:17

我正在将项目添加到字符串列表中,我知道存在要插入的数据,但我一直得到空引用错误消息Object reference not set to an instance of an object.

    public class ExcelRow
        {
            public List<String> lstCells;
            public byte[] rowHash;
            ......
        }
    public class ExcelInfo
        {
            public List<ExcelRow> excelRows;
        }
    public ExcelInfo ReadExcel(OpenFileDialog openFileDialog)
        {
            var _excelFile = new ExcelQueryFactory(openFileDialog.FileName);
            var _info = from c in _excelFile.WorksheetNoHeader() select c;
            ExcelRow excelRow;
            ExcelInfo resp;
            resp = new ExcelInfo();
            foreach (var item in _info)
            {
                excelRow = new ExcelRow();
                excelRow.lstCells.Add(item.ElementAt(0));
                excelRow.lstCells.Add(item.ElementAt(1));
                excelRow.lstCells.Add(item.ElementAt(2));
                excelRow.lstCells.Add(item.ElementAt(3));
                .....
                excelRow.CalculateHash();
                resp.excelRows.Add(excelRow);
             }
            return resp;
       }

这就是我得到错误的地方:excelRow.lstCells.Add(item.ElementAt(0));

正在向列表字符串中添加项,但获取null引用异常

您需要在ExcelRow构造函数中初始化lstCells

public class ExcelRow {
  public List<String> lstCells;
  public byte[] rowHash;
  public ExcelRow(){
     lstCells = new List<string>();
  }
  //....
}
public class ExcelInfo {
  public List<ExcelRow> excelRows = new List<ExcelRow>();
}

您没有显示ExcelRow构造函数,但从错误中,我猜您从未实例化lstCells,它仍然为null。

你可以通过调试你的程序,在行中的每个项目上鼠标,或者一次从行中有条不紊地删除一个项目,直到它重新开始工作来找到这个问题。并推导出问题。