//StartWith Contains ... static IList <BinaryExpression> Lambda <TObj>(CustomExpressionTree expressTree, ParameterExpression pe) where TObj : class { var flagArr = new List <int>(); var expressionList = new List <BinaryExpression>(); while (expressTree.Count > 0) { var stackContent = expressTree.Pop(); if (stackContent is string) { ProcessNonExp(flagArr, expressionList, stackContent.ToString()); continue; } if (stackContent is CustomExpression) { var currExpress = (stackContent as CustomExpression); ProcessExp <TObj>(pe, currExpress, flagArr, expressionList); } } while (flagArr.Count > 0) { var lastFlag = flagArr[flagArr.Count - 1]; CompositeExpByConj(lastFlag, expressionList); flagArr.RemoveAt(flagArr.Count - 1); } return(expressionList); }
static CustomExpressionTree SwapExp(CustomExpressionTree result) { var result2 = new CustomExpressionTree(); while (result.Count > 0) { result2.Push(result.Pop()); } return(result2); }