public override int GetHashCode() { unchecked { var hashCode = Id; hashCode = (hashCode * 397) ^ (Value != null ? Value.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (InnerNode != null ? InnerNode.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (Children != null ? Children.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (Parent != null ? Parent.GetHashCode() : 0); return(hashCode); } }