C# - neat implementation of GetHashCode() for combined members

C# - neat implementation of GetHashCode() for combined members


        public override int GetHashCode()
        {
            unchecked
            {
                return base.GetHashCode((int)Member1, (int)Member2, (int)Member3);
            }
        }


base class:

        protected int GetHashCode(params int[] props)
        {
            unchecked
            {
                var hashCode = GetHashCode();
                return props.Aggregate(hashCode, (current, p) => (current * 379) ^ p);
            }
        }

Comments