Example #1
0
        /// <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));
        }
Example #2
0
        public override int GetHashCode()
        {
            var entriesHashCode = 0;

            foreach (var entry in this.Entries)
            {
                entriesHashCode = Hashing.CombineHashes(entriesHashCode, entry.GetHashCode());
            }

            return(entriesHashCode);
        }
Example #3
0
        /// <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);
        }