0

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?)

ilkay
  • 1
  • 1

0 Answers0