Search code examples
c#lambdaicollection

Lambda loop thru ICollection failed to find object property


I have a list of objects as ICollection<objectA> listA. Now I'm trying to loop thru this listA and trying to match a condition and assign the result found into a variable. I tried below:

varB.someDesc = listA.FirstOrDefault(x=>x.ID == varB.ID).someDesc

Error complaining that x.ID is object null reference. When I put a break point, I can see there are many items in listA and there is an attribute ID. May I know what goes wrong?


Solution

  • I suggest validating the return value of FirstOrDefault() as follows:

    var item = listA.FirstOrDefault(x=>x.ID == varB.ID);
    if (item != null)
        varB.someDesc = item.someDesc;
    

    The error might not be exactly what you think it is.