正在向列表字符串中添加项,但获取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));
您需要在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。
你可以通过调试你的程序,在行中的每个项目上鼠标,或者一次从行中有条不紊地删除一个项目,直到它重新开始工作来找到这个问题。并推导出问题。