public static string ToExpressionString(this LambdaExpression expression)
{
StringBuilder sbExpression = new StringBuilder();
foreach (var exprParam in expression.Parameters)
{
sbExpression.Append(exprParam);
if (expression.Parameters.Last() != exprParam) sbExpression.Append(",");
}
sbExpression.Append(" => ");
var exprBody = expression.Body.ToString();
exprBody = exprBody.Replace("OrElse", "||").Replace("AndAlso", "&&");
sbExpression.Append(exprBody);
return sbExpression.ToString();
}