public override int GetHashCode() { // hash is: struct's hash, plus data hashes int hash = Class.StructInfo.GetHashCode(); foreach (object obj in _data) { hash ^= RubyUtils.GetHashCode(obj); } return(hash); }