我有一个对象列表ICollection<objectA> listA
。现在我试图循环通过此listA并尝试匹配条件并将找到的结果分配给变量。我在下面尝试过:
varB.someDesc = listA.FirstOrDefault(x=>x.ID == varB.ID).someDesc
错误抱怨x.ID
是对象空引用。当我提出一个断点时,我可以看到listA中有很多项,并且有一个属性ID
。我可以知道出了什么问题吗?
答案 0 :(得分:3)
我建议验证FirstOrDefault()的返回值,如下所示:
var item = listA.FirstOrDefault(x=>x.ID == varB.ID);
if (item != null)
varB.someDesc = item.someDesc;
错误可能与您的想法不完全相同。
答案 1 :(得分:-2)
试试这段代码。
varB.someDesc = listA.Where(x=>x.ID == varB.ID).FirstOrDefault().someDesc
你最好在分配之前检查Object Null。