私は同じタイプの2つのリストを持っています。リスト<T>。例外(リスト<T>)が期待どおりに機能しない
リストは、ファイルからロードされ、正しいタイプにキャストされた非直列化jsonオブジェクトです。
もう1つは、同じタイプのオブジェクトで作成されたリストです。
私はList2.Except(List1)
が、私はこの場合List1
ではありませんList2
のすべてを見ることを期待しない場合は、List2
はList1
が持っているすべてのもの、より何を持っていますので、私はサイズの結果Enumerable<T>
を見ることを期待0、しかし、私はちょうど比較が起こらなかったかのようにList2
の全体を見ているだけです。
IEnumerable<Review> newReviews = reviews.Except(savedRvReviews, new ReviewComparer());
は、私はまた、以下のコードEqualityComparer
使用してみました:
public class ReviewComparer : IEqualityComparer<Review>
{
public bool Equals(Review x, Review y)
{
return x.ReviewID == y.ReviewID;
}
public int GetHashCode(Review rv)
{
return EqualityComparer<Review>.Default.GetHashCode(rv);
}
}
をして同じ結果を得ました。
public class Review : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
[Browsable(false)]
public string ReviewID { get; set; }
public string ProductID { get; set; }
public DateTime DateSubmitted { get; set; }
public string ReviewTitle { get; set; }
[Browsable(false)]
public string ReviewDescription { get; set; }
public int ReviewMark { get; set; }
[Browsable(false)]
public bool Approved { get; set; }
}
あなたがExcept inを行っているコードを投稿していないのはなぜですか? –
私はそれを追加しましたが、特別なことは何もありません。 – 5SK5
例外が期待どおりに機能しておらず、正しく使用している場合、ハッシュコードの取得を実装しておらず、正しく等しい値をオーバーライドする可能性があります。 –