.ToDictionary抛出异常" NullReferenceException"

时间:2015-05-29 20:57:39

标签: c# linq dictionary

我有以下代码 .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);
}

使用此代码没有异常,但无法确定此异常的真正原因。

1 个答案:

答案 0 :(得分:0)

我相信您的代码行serviceDurations.ToDictionary( ...正在抛出空引用异常,并且由于某种原因,serviceDurations实例null实例为serviceDurations因此异常。

您必须调试并找出{{1}}实例为空的原因。