public override int GetHashCode() { int hashCode = -849885975; hashCode = hashCode ^ ItemSpec.GetHashCode(); if (Metadata != null) { foreach (var kvp in Metadata) { hashCode ^= StringComparer.OrdinalIgnoreCase.GetHashCode(kvp.Key) * (StringComparer.OrdinalIgnoreCase.GetHashCode(kvp.Value ?? "V") + 1); } } return(hashCode); }