public int Compare(object x, object y) { TreeNode tx = x as TreeNode; TreeNode ty = y as TreeNode; BaseScore scx = tx.Tag as BaseScore; BaseScore scy = ty.Tag as BaseScore; if (scx == null && scy == null) { return(0); } if (scx == null) { return(-1); } if (scy == null) { return(1); } return(scx.CompareToNoLoc(scy)); }