Have you overloaded the equality operator for ReportReceipt? Is the SequenceEqual method not testing to locate ReportReceipt in memory, not the contents of an object? Overriding peers and GetHashCode should solve your problem.
Add the following to ReportReceipt:
public override bool Equals(object obj) { if (obj == null || obj.GetType() != this.GetType) return false; ReportReceipt other = (ReportReceipt)obj; return this.FileName.Equals(other.FileName) && this.Hash.Equals(other.Hash); }
source share