The title may sound familiar. But I think the question is a little different.
I have two different type object list.
var routeHeader = AdoNet.GetData(Query....).Tables[0].DataTableToList<ApproveRoute>().FirstOrDefault();
var routeDetail = AdoNet.GetData(Query....).Tables[0].DataTableToList<Approver>().OrderBy(x => x.fldRow).ToList();
After the objects are created, I enter a foreach loop below and filter the values I want.
foreach (var item in routeDetail)
{
if (item.fldRow <= routeHeader.fldRowNumberForMinAmount)
routeDataList.Add(item);
else
break;
}
The code works exactly as it is. But... when i convert foreach loop to linq or lambda expression like this
var a = (from r in routeDetail
where routeHeader.fldRowNumberForMinAmount.HasValue &&
r.fldRow <= routeHeader.fldRowNumberForMinAmount
select r).ToList();
// OR
var a = routeDetail.Where(x => routeHeader.fldRowNumberForMinAmount.HasValue && x.fldRow <= routeHeader.fldRowNumberForMinAmount).ToList();
I'm getting NullReferenceException error on the var routeHeader = AdoNet.... line.
My Question: The linq or lambda expression may be faulty but why am I getting the error in the normally working line above?
Thanks for all the replies.
Ps. routeHeader.fldRowNumberForMinAmount is Nullable int (int?)