我有以下代码 .ToDictionary正在意外工作并抛出错误"未找到对象引用"。
var serviceOptions = serviceDurations.ToDictionary(so => so.OptionCode, StringComparer.OrdinalIgnoreCase);
var serviceLines = serivceLinePayments.Select(sl => new ServiceLine(serviceOptions[sl.option_code], Decimal.ToInt32(sl.quantity), sl.customer_paid_amount));
如果我将此代码替换为。
var serviceOptions = serviceDurations.ToDictionary(so => so.OptionCode, StringComparer.OrdinalIgnoreCase);
//var serviceLines = serivceLinePayments.Select(sl => new ServiceLine(serviceOptions[sl.option_code], Decimal.ToInt32(sl.quantity), sl.customer_paid_amount));
List<ServiceLine> serviceLines = new List<ServiceLine>();
foreach (var item in serivceLinePayments)
{
var so = serviceOptions.FirstOrDefault(s => s.Value.OptionCode == item.option_code);
ServiceLine line = new ServiceLine( so.Value, Decimal.ToInt32(item.quantity), item.customer_paid_amount);
serviceLines.Add(line);
}
使用此代码没有异常,但无法确定此异常的真正原因。
答案 0 :(得分:0)
我相信您的代码行serviceDurations.ToDictionary( ...
正在抛出空引用异常,并且由于某种原因,serviceDurations
实例null
实例为serviceDurations
因此异常。
您必须调试并找出{{1}}实例为空的原因。