public override string ToString()
{
return
String.Join
(
"\r\n",
(from f in ForClauses select f.ToString())
.Union(from l in LetClauses select l.ToString())
.Union(WhereClause != null ? new[] { "where" + WhereClause.ToString() } : new string[] {})
.Union(OrderDimensions.Count > 0 ? new[] { "order (" + String.Join(", ", from o in OrderDimensions select o.ToString()) + ")" } : new string[] {})
.Union(Expression != null ? new[] { "return " + Expression } : new string[] {})
);
}