internal int ContentsHashCode() { string s = GetTextOnly(); if (s != null) { return(s.GetHashCode()); } int h = 0; XNode n = content as XNode; if (n != null) { do { n = n.next; string text = CollectText(ref n); if (text.Length > 0) { h ^= text.GetHashCode(); } if (n == null) { break; } h ^= n.GetDeepHashCode(); } while (n != content); } return(h); }