public override int GetHashCode() { var hashCode = Created.GetHashCode() ^ LastModified.GetHashCode() ^ Size.GetHashCode() ^ IsFavorite.GetHashCode() ^ CommentsCount.GetHashCode() ^ CommentsUnread.GetHashCode() ^ ShareTypes.GetHashCode() ^ HasPreview.GetHashCode(); if (ContentType != null) { hashCode ^= ContentType.GetHashCode(); } if (Name != null) { hashCode ^= Name.GetHashCode(); } if (Path != null) { hashCode ^= Path.GetHashCode(); } if (CommentsHref != null) { hashCode ^= CommentsHref.GetHashCode(); } // Is null on directories if (ETag != null) { hashCode ^= ETag.GetHashCode(); } if (!string.IsNullOrEmpty(Id)) { hashCode ^= Id.GetHashCode(); } if (!string.IsNullOrEmpty(FileId)) { hashCode ^= FileId.GetHashCode(); } if (!string.IsNullOrEmpty(OwnderId)) { hashCode ^= OwnderId.GetHashCode(); } if (!string.IsNullOrEmpty(OwnerDisplayName)) { hashCode ^= OwnerDisplayName.GetHashCode(); } if (!string.IsNullOrEmpty(Checksums)) { hashCode ^= Checksums.GetHashCode(); } return(hashCode); }