internal string GetChecksum() { var result = Source + "|" + Target + "|" + OrderDescending + "|" + Skip + "|" + Take + "|" + Function + "|" + SourceType + "|"; result += (Arguments == null ? null : string.Join(",", Arguments.Select(x => x.GetChecksum()))); result += "|"; result += (Ordering == null ? null : Ordering.GetChecksum()); var selChild = Child as SelectorExpression; if (selChild != null) { var dimChild = selChild.Child as DimensionExpression; if (dimChild != null) { result += "[" + dimChild.GetChecksum() + "]"; } } return(result); }