次の LINQ を使用して、オブジェクトの 2 つのリストを比較しています。
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.
問題は、古いオブジェクトに Text フィールドが null に設定された回答がある場合だと思います。
!db.Text.Equals(wb.Text)
私が期待したように動作しません。
上記の比較を変更して、テキストが異なる場合、または古いテキストがnullの場合、および正しいという名前のフィールドの値が変更された場合に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; }
}