public override int GetHashCode() { int hash = ProjectDirectory?.GetHashCode() ?? 1 * 23; hash += (ProjectName?.GetHashCode() ?? 1 * 23); hash += (OutputMSBuildProject?.GetHashCode() ?? 1 * 23); hash += (Errors?.Sum(e => e.GetHashCode() * 17) ?? 1 * 23); hash += (Warnings?.Sum(w => w.GetHashCode() * 17) ?? 1 * 23); hash += (PreExistingCsprojDependencies?.Sum(p => p.GetHashCode() * 17) ?? 1 * 23); hash += (Skipped.GetHashCode() * 23); hash += (Failed.GetHashCode() * 23); hash += (Succeeded.GetHashCode() * 23); return(hash); }