/// <summary> /// Implement the GetHashCode method. /// </summary> /// <returns></returns> public override int GetHashCode() { var typeHashCode = this.Type.GetHashCode(); var valueHashCode = 0; if (this.Value != null) { if (this.Type == DynamoDBEntryType.Numeric || this.Type == DynamoDBEntryType.String) { valueHashCode = this.Value.GetHashCode(); } else if (this.Type == DynamoDBEntryType.Binary) { var bytes = this.Value as byte[]; if (bytes != null) { for (int i = 0; i < bytes.Length; i++) { byte b = bytes[i]; valueHashCode = Hashing.CombineHashes(valueHashCode, b.GetHashCode()); } } } } return(Hashing.CombineHashes(typeHashCode, valueHashCode)); }
public override int GetHashCode() { var entriesHashCode = 0; foreach (var entry in this.Entries) { entriesHashCode = Hashing.CombineHashes(entriesHashCode, entry.GetHashCode()); } return(entriesHashCode); }
/// <summary> /// Implement the GetHashCode method. /// </summary> /// <returns></returns> public override int GetHashCode() { var typeHashCode = this.Type.GetHashCode(); var entriesHashCode = 0; foreach (var entry in this.Entries) { // Hash entries in such a way that order doesn't matter entriesHashCode = entriesHashCode ^ entry.GetHashCode(); } return(Hashing.CombineHashes(typeHashCode, entriesHashCode)); }
/// <summary> /// Implements the GetHashCode. /// </summary> /// <returns></returns> public override int GetHashCode() { var hashCode = 0; foreach (var kvp in this) { string key = kvp.Key; DynamoDBEntry entry = kvp.Value; hashCode = Hashing.CombineHashes(hashCode, key.GetHashCode(), entry.GetHashCode()); } return(hashCode); }