MoreInternals.Model.CompoundValue.GetHashCode C# (CSharp) Method

GetHashCode() public method

public GetHashCode ( ) : int
return int
        public override int GetHashCode()
        {
            var ret = 0;
            for (var i = 0; i < Values.Count(); i++)
            {
                var vHash = Values.ElementAt(i).GetHashCode();

                var bytes = BitConverter.GetBytes(vHash).ToList();

                var rotateBy = i % bytes.Count;

                var firstI = bytes.Take(rotateBy);
                var theRest = bytes.Skip(rotateBy);

                var rotatedBytes = new List<byte>(4);
                rotatedBytes.AddRange(firstI);
                rotatedBytes.AddRange(theRest);

                var rotated = BitConverter.ToInt32(rotatedBytes.ToArray(), 0);

                ret ^= rotated;
            }

            return ret;
        }