我在将列表添加到列表时遇到问题,列表是对象'TranchesDt'的参数。
public class TranchesDt
{
public List<startup> tranches {get; set;}
public List<reservation> reservations { get; set; }
public List<location> locations { get; set; }
}
有代码,我将对象添加到'TranchesDt':
public static TranchesDt Parse(string filePath)
{
string[] lines = File.ReadAllLines(filePath);
TranchesDt dt = new TranchesDt();
for (int i = 0; i < lines.Length; i++)
{
string recordId = lines[i].Substring(0, 2);
switch (recordId)
{
case "11":
{
dt.tranches.Add(Parse11(lines[i]));
break;
}
case "01":
{
dt.locations.Add(Parse01(lines[i]));
break;
}
case "00":
{
dt.reservations.Add(Parse00(lines[i]));
break;
}
}
}
return dt;
}
public static startup Parse11(string line)
{
var ts = new startup();
ts.code = line.Substring(2, 5);
ts.invoice = line.Substring(7, 7);
ts.amount = Decimal.Parse(line.Substring(14, 13));
ts.model = line.Substring(63, 4);
ts.brutto = Decimal.Parse(line.Substring(95, 13));
return ts;
}
我得到了
System.NullReferenceException:未将对象引用设置为对象的实例。
在 dt.tranches.Add(Parse11(lines [i]))行 我的问题在哪里,我该如何解决?
答案 0 :(得分:2)
您永远不会初始化List实例,因此dt.tranches为null。 (正如另外两个列表所示)
在
之后添加以下代码行TranchesDt dt = new TranchesDt();
dt.tranches = new List<startup>();
dt.reservations = new List<reservation>();
dt.locations = new List<location>();
注意语法错误。