Consider the following partial view code snippet
List<sellingPrice> Prices = ViewBag.Prices;
foreach (var mgmp in mg.messageGroup.messageGroupMessagePLUs)
{
if (Prices.Any(x => x.pluId == mgmp.messagePLU.plu.pluId))
{
//do stuff
}
}
For specific products in the db, the line
if (Prices.Any(x => x.pluId == mgmp.messagePLU.plu.pluId))
throws a System.NullReferenceException. Inspecting the code shows that mgmp is an object and Prices contains elements. However, the value of x is null. Now, I am under the impression that I am simply testing whether or not any "x" exists that satisfies my test, not asking it to return an "x".
It's a very irritating problem. Hopefully someone can point out the really obvious solution.
Try:
Prices.Any(x => x!=null && x.pluId == mgmp.messagePLU.plu.pluId)
You might need to do other null checks if for example .messagePLU can be null