我正在使用以下 LINQ 来比较两个对象列表。
var upd = newObj.Where(wb => oldObj.Any(db =>
(db.AnswerId == wb.AnswerId) &&
(db.Number != wb.Number || !db.Text.Equals(wb.Text))))
.ToList();
当 AnswerId 匹配时,我会查看 object.Number 或 object.Text 是否不同。
然而,这给了我一个:
Object reference not set to an instance of an object.
我认为问题是当旧对象的答案设置为 null 时
!db.Text.Equals(wb.Text)
无法按我预期的方式工作。
有什么方法可以改变上面的比较,所以如果文本不同或者旧的 Text 为 null 并且名为 Correct 的字段的值发生变化,它会显示为 true 吗?
仅供参考这是我正在使用的对象:
public class Answer {
public int AnswerId { get; set; }
public int Number { get; set; }
public int QuestionId { get; set; }
public Nullable<bool> Correct { get; set; }
public Nullable<bool> Response { get; set; }
public string Text { get; set; }
}