public override int GetHashCode() { int hash = 17; unchecked { hash = hash * 23 + Type.GetHashCode(); hash = SourceAccounts.OrderBy(x => x).Aggregate(hash, (current, acc) => current * 23 + acc.GetHashCode()); hash = TargetAccounts.OrderBy(x => x).Aggregate(hash, (current, acc) => current * 23 + acc.GetHashCode()); } return(hash); }